我有我的服务器上运行以下的node.js:的Node.js:发送消息至服务器

var net=require('net');

var util=require('util');

var server=net.createServer(function(conn){

conn.on('connect',function(){

util.puts('connect');

});

conn.on('data',function(data){

util.puts(data);

});

});

server.listen(5000,'172.16.1.197');

这一切正常,我可以telnet到172.16.1.197:5000和它的行为预期。

现在,我有一个客户端在IP地址为172.16.1.218的另一个盒子上运行,我只是想发送一条消息到服务器。

function sendAMessage(payLoad){

//what to put in here?

}

payLoad应打印在服务器端。

我知道这看起来很简单,但我真的无法绕过它 - 我对node.js很陌生。

很多感谢,

添加一些代码:

这里的客户端(172.16.1.218):

var http = require('http');

var util=require('util');

var net=require('net');

var localHash={};

var chunkLength=100;

http.createServer(function(request, response) {

var proxy = http.createClient(80, request.headers['host'])

var proxy_request = proxy.request(request.method, request.url, request.headers);

proxy_request.addListener('response', function (proxy_response) {

proxy_response.addListener('data', function(x) {

var responseData=x.toString("binary");

var bytes=getBytes(responseData);

util.puts(bytes.length);

for(var i=0;i

var hash=DJBHash(bytes[i]);

//util.puts(hash);

if(hash in localHash){

//in hash, send alias

//response.write(""+hash+"",'binary');

response.write(bytes[i],'binary');

}else{

//not in hash, send full chunk

updateRemoteHash(hash,bytes[i]);

response.write(bytes[i],'binary');

localHash[hash]=bytes[i];

}

}

//response.write(bytes,"binary");

});

proxy_response.addListener('end', function() {

response.end();

});

response.writeHead(proxy_response.statusCode, proxy_response.headers);

});

request.addListener('data', function(chunk) {

util.puts(chunk);

proxy_request.write(chunk, 'binary');

});

request.addListener('end', function() {

proxy_request.end();

});

}).listen(8080,'172.16.1.218');

function getBytes(responseData){

var f=chunkLength;

var toTransmit="";

var p=0;

var bytes=Array();

var N=responseData.length;

if(N>f){

p=Math.floor(N/f);

var hash="";

var chunk="";

for(var i=0;i

chunk=responseData.substr(f*i,f);

toTransmit=toTransmit+chunk;

bytes[i]=chunk;

/*hash=DJBHash(chunk);

if(localHash[hash]==undefined){

localHash[hash]=chunk;

//updateRemoteHash(hash,chunk);

toTransmit=toTransmit+chunk;

}else{

sys.puts("***hit"+chunk);

toTransmit=toTransmit+chunk;//"***EOH"+hash;

}*/

}

//remainder:

chunk=responseData.substr(f*p);

toTransmit=toTransmit+chunk;

bytes[p]=chunk;

/*hash=DJBHash(chunk);

if(localHash[hash]==undefined){

localHash[hash]=chunk;

//updateRemoteHash(hash,chunk);

toTransmit=toTransmit+chunk;

}else{

toTransmit=toTransmit+chunk;//"***EOH"+hash;

}*/

}else{

toTransmit=responseData;

bytes[0]=responseData;

}

return bytes;

}

function DJBHash(str) {

var hash = 5381;

for(var i = 0; i < str.length; i++) {

hash = (((hash << 5) + hash) + str.charCodeAt(i)) & 0xffffffff;

}

if(hash

hash=hash*-1;

}

return hash;

}

function updateRemoteHash(hash,chunk){

var c=net.createConnection(5000,'172.16.1.197');

c.on('connect',function(){

c.write(hash);

c.end();

});

}

和服务器端(172.16.1.197) :

var net=require('net');

var util=require('util');

var server=net.createServer(function(conn){

conn.on('connect',function(){

util.puts('connect');

});

conn.on('data',function(data){

util.puts(data);

});

});

server.listen(5000,'172.16.1.197');

2011-09-06

Eamorr

js 给服务器发消息,的Node.js:发送消息至服务器相关推荐

  1. Node.js(一)——(Node.js安装及使用,通过Node.js搭建服务器,模块化及自定义模块,npm/yarn/nvm,内置模块fs的使用,buffer及stream,新闻列表案例)

    目录 1.Node.js介绍 2.安装Node.js 3.使用Node.js实现第一个服务器 3.1初步感受Node.js 3.2Google Chrome 默认非安全端口列表,尽量避免以下端口. 3 ...

  2. node.js使用手册_权威的Node.js手册

    node.js使用手册 Note: you can get a PDF, ePub, or Mobi version of this handbook for easier reference, or ...

  3. node.js 生成文件_如何使用Node.js在几秒钟内生成模拟数据

    node.js 生成文件 介绍 (Introduction) In most of the applications, you need to have some static JSON data w ...

  4. 《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记

    最近想尝试一下在IBM Bluemix上使用Node.js创建Web应用程序,所以需要在本地搭建Node.js Web的开发测试环境. 这里讲的是Windows下的搭建方法,使用CentOS 的小伙伴 ...

  5. Node.js基础汇总(一):什么是Node.js,创建最简单的Node.js应用,NPM介绍,安装express模块

    目录 1. 什么是Node.js? 1.1 JavaScript是什么? 1.2 Node.js 是什么? 1.3 Node.js的原理 2. 创建最简单的Node.js应用 2.1 代码示例 2.2 ...

  6. Node.js:海量数据大行其道的今天 node.js 在IO方面如何异步非阻塞

    以其高性能,异步IO著称,当然node.js 在 stream 上的异步也非常到位. 我们一般理解的异步请求是这样的: 同时处理多件件事件 A,B,C,D,E,F,G .... 如果用.net语言去处 ...

  7. 性能追击:万字长文30+图揭秘8大主流服务器程序线程模型 | Node.js,Apache,Nginx,Netty,Redis,Tomcat,MySQL,Zuul

    本文为<高性能网络编程游记>的第六篇"性能追击:万字长文30+图揭秘8大主流服务器程序线程模型". 最近拍的照片比较少,不知道配什么图好,于是自己画了一个,凑合着用,让 ...

  8. node.js wechaty实现微信机器人聊天,定时发送消息

    目录 1.介绍 2.插件安装运行 3.快速上手 1.介绍 本项目主要是node wechaty的一个小应用,其核心原理主要通过wechaty插件登录网页版微信接受消息进行通信以及其他功能等.这里只做了 ...

  9. node本地连接服务器的数据库_Linux本地连接阿里云服务器,以及下载node.js配置环境...

    1.远程登录 > ssh 用户名@ip输入密码进入 2. 文件远程传输 > scp 本机文件地址 用户名@ip:远程保存的路径 > scp ./index.html root@192 ...

最新文章

  1. 更新maven一直在更新_不更新app,就可以一直派单了?闪送政策早知道
  2. nosql简答什么是最终一致性_NoSql的三大基石:CAP理论BASE最终一致性
  3. xargs 命令教程
  4. [文章摘录] Is Cloud Computing Really Ready for Prime Time (Computer, 2009)
  5. Maven - error in opening zip file
  6. 开发板ping不通Linux虚拟机的原因及解决办法
  7. 后台数据量太大传输慢_哪些因素会导致慢查询?
  8. 基于python的贪吃蛇游戏设计与实现
  9. 2021年汽车电子之传感器行业研究报告
  10. WFDB工具箱在Matlab2010b及更高版本上的安装
  11. 什么是外贸ERP系统?
  12. Cocos野兽派 | 如何创造真正的优秀游戏
  13. 电路交换、报文交换、分组交换三种数据交换方式的特点、优点、应用场景以及技术对比分析
  14. 【转】2014 IT公司校招应届生待遇大揭秘
  15. 我国地理信息系统产业发展前景
  16. 臭屁净化器——arduino实现
  17. Hive 正则提取英文名称和中文名称
  18. verilog 自动售货机状态机实现_基于Verilog语言的简单自动售货机-数电课设报告(最终版)最新版...
  19. Paper Note - HOLMES:基于可疑信息流的实时APT检测
  20. 在IT行业,学历比能力更重要吗?

热门文章

  1. 万万没想到 过去一年 蚂蚁森林成了联合国会议上的“网红”
  2. [codevs1378]选课
  3. CentOS7部署(Mysql) MariaDB Galera Cluster 10.1记录
  4. javaweb男的gulp入手实践
  5. 图像处理之基础---图像高效不失真缩放既卷积应用
  6. (android实战)第三方应用反编译并修改UI信息后,重新编译
  7. ajax,training my javascript!手写AJAX,用POST方法传值
  8. (转贴) ArcIMS初级教程(1)
  9. Liststring绑定到DataGridView控件
  10. 『TensorFlow』分布式训练_其二_单机多GPU并行GPU模式设定