node.js使用net模块创建服务器和客户端示例【基于TCP协议】
本文实例讲述了node.js使用net模块创建服务器和客户端。分享给大家供大家参考,具体如下:
node.js中net模块创建服务器和客户端
1.node.js中net模块创建服务器(net.createServer)
//将net模块引入进来
varnet=require("net");
//创建一个net.Server用来监听,当连接进来的时候,就会调用我们的函数
//client_sock,就是我们的与客户端通讯建立连接配对的socket
//client_sock就是与客户端通讯的net.Socket
varserver=net.createServer(function(client_sock){
console.log("clientcomming",client_sock.remoteAddress,client_sock.remotePort);
//设置你接受的格式,
//client_sock.setEncoding("utf8");
//client_sock.setEncoding("hex");//转成二进制的文本编码
//
//客户端断开连接的时候处理,用户断线离开了
client_sock.on("close",function(){
console.log("closesocket");
});
//接收到客户端的数据,调用这个函数
//data默认是Buffer对象,如果你强制设置为utf8,那么底层会先转换成utf8的字符串,传给你
//hex底层会把这个Buffer对象转成二进制字符串传给你
//如果你没有设置任何编码
//utf8-->HelloWorld!!!hex-->"48656c6c6f576f726c6421"
client_sock.on("data",function(data){
console.log(data);
client_sock.write("goodbye!!!");
client_sock.end();//正常关闭
});
client_sock.on("error",function(err){
console.log("error",err);
});
});
//当我开始监听的时候就会调用这个回掉函数
server.on("listening",function(){
console.log("startlistening...");
});
//监听发生错误的时候调用
server.on("error",function(){
console.log("listenerror");
});
server.on("close",function(){
console.log("serverstoplistener");
});
/*
server.on("connection",function(client_sock){
console.log("clientcomming22222");
});
*/
//编写代码,指示这个server监听到哪个端口上面。
//127.0.0.1:6080
//node就会来监听我们的server,等待连接接入
server.listen({
port:6080,
host:"127.0.0.1",
exclusive:true,
});
//停止node对server的监听事件处理,那么node就没有其他的事件要处理,所以就退出了。
//server.unref();//取消node,对server的事件的监听;
//server.close();//主动的掉这个server.close才会触发这个net.Server的close事件
2.node.js中net模块创建客户端(net.connect())
varnet=require("net");
//net.Socket,
varsock=net.connect({
port:6080,
host:"127.0.0.1",
},function(){
console.log('connectedtoserver!');
});
//连接成功调用的事件
sock.on("connect",function(){
console.log("connectsuccess");
//在这里我们就可以发送数据了
sock.write("HelloWorld!","utf8");
//end
});
//end
//有错误发生调用的事件
sock.on("error",function(e){
console.log("error",e);
});
//socket关闭的事件
sock.on("close",function(){
console.log("close");
});
//对方发送了关闭数据包过来的事件
sock.on("end",function(){
console.log("endevent");
});
//当有数据发生的时候,调用;
sock.on("data",function(data){
console.log(data);
});
希望本文所述对大家node.js程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。