node.js中net模块创建服务器和客户端(TCP) node.js中net模块创建服务器和客户端

node.js中net模块创建服务器和客户端

1.node.js中net模块创建服务器(net.createServer)

[javascript]  view plain  copy
  1. // 将net模块 引入进来  
  2. var net = require("net");  
  3.   
  4. // 创建一个net.Server用来监听,当连接进来的时候,就会调用我们的函数  
  5. // client_sock,就是我们的与客户端通讯建立连接配对的socket  
  6. // client_sock 就是与客户端通讯的net.Socket  
  7. var server = net.createServer(function(client_sock) {   
  8.     console.log("client comming", client_sock.remoteAddress, client_sock.remotePort);  
  9.     // 设置你接受的格式,   
  10.     // client_sock.setEncoding("utf8");  
  11.     // client_sock.setEncoding("hex"); // 转成二进制的文本编码  
  12.     //   
  13.     // 客户端断开连接的时候处理,用户断线离开了  
  14.     client_sock.on("close"function() {  
  15.         console.log("close socket");  
  16.     });  
  17.   
  18.     // 接收到客户端的数据,调用这个函数  
  19.     // data 默认是Buffer对象,如果你强制设置为utf8,那么底层会先转换成utf8的字符串,传给你  
  20.     // hex 底层会把这个Buffer对象转成二进制字符串传给你  
  21.     // 如果你没有设置任何编码 <Buffer 48 65 6c 6c 6f 57 6f 72 6c 64 21>  
  22.     // utf8 --> HelloWorld!!!   hex--> "48656c6c6f576f726c6421"  
  23.     client_sock.on("data"function(data) {  
  24.         console.log(data);  
  25.   
  26.         client_sock.write("goodbye!!!");  
  27.   
  28.         client_sock.end(); // 正常关闭  
  29.     });  
  30.   
  31.   
  32.     client_sock.on("error"function(err) {  
  33.         console.log("error", err);  
  34.     });  
  35. });  
  36.   
  37. // 当我开始监听的时候就会调用这个回掉函数  
  38. server.on("listening"function() {  
  39.     console.log("start listening...");  
  40. });  
  41.   
  42.   
  43. // 监听发生错误的时候调用  
  44. server.on("error"function() {  
  45.     console.log("listen error");  
  46. });  
  47.   
  48. server.on("close"function() {  
  49.     console.log("server stop listener");  
  50. });  
  51. /* 
  52. server.on("connection", function(client_sock) { 
  53.     console.log("client comming 22222"); 
  54. }); 
  55. */  
  56. // 编写代码,指示这个server监听到哪个端口上面。  
  57. // 127.0.0.1: 6080  
  58. // node就会来监听我们的server,等待连接接入  
  59. server.listen({  
  60.     port: 6080,  
  61.     host: "127.0.0.1",  
  62.     exclusive: true,  
  63. });  
  64.   
  65. // 停止node对server的监听事件处理,那么node就没有其他的事件要处理,所以就退出了。  
  66. // server.unref(); // 取消node,对server的事件的监听;  
  67. // server.close(); // 主动的掉这个server.close才会触发这个net.Server的close事件  

2.node.js中net模块创建客户端(net.connect())

[javascript]  view plain  copy
  1. var net = require("net");  
  2.   
  3. // net.Socket,  
  4. var sock = net.connect({  
  5.     port: 6080,  
  6.     host: "127.0.0.1",  
  7. }, function() {  
  8.     console.log('connected to server!');  
  9. });  
  10.   
  11. // 连接成功调用的事件  
  12. sock.on("connect",function() {  
  13.     console.log("connect success");  
  14.   
  15.   
  16.     // 在这里我们就可以发送数据了  
  17.     sock.write("HelloWorld!""utf8");  
  18.     // end   
  19. });  
  20. // end  
  21.   
  22. // 有错误发生调用的事件  
  23. sock.on("error"function(e) {  
  24.     console.log("error", e);  
  25. });  
  26.   
  27. // socket关闭的事件  
  28. sock.on("close"function() {  
  29.     console.log("close");  
  30. });  
  31.   
  32. // 对方发送了关闭数据包过来的事件  
  33. sock.on("end"function() {  
  34.     console.log("end event");  
  35. });  
  36.   
  37. // 当有数据发生的时候,调用;  
  38. sock.on("data"function(data) {  
  39.     console.log(data);  
  40. });  

猜你喜欢

转载自blog.csdn.net/qq_24745557/article/details/80768942