博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodejs socket实现的服务端和客户端简单通信
阅读量:3949 次
发布时间:2019-05-24

本文共 1878 字,大约阅读时间需要 6 分钟。

                       

本文实例讲述了通过node.js的net模块实现nodejs socket服务端和客户端简单通信功能,可以用作客户端对服务端的端口监听以及事件回执。

server端代码

var net = require('net');//模块引入var listenPort = 8080;//监听端口var server = net.createServer(function(socket){
  // 创建socket服务端  console.log('connect: ' +    socket.remoteAddress + ':' + socket.remotePort);  socket.setEncoding('binary');  //接收到数据  socket.on('data',function(data){
    console.log('client send:' + data);  });socket.write('Hello client!\r\n'); // socket.pipe(socket);  //数据错误事件  socket.on('error',function(exception){
    console.log('socket error:' + exception);    socket.end();  });  //客户端关闭事件  socket.on('close',function(data){
    console.log('client closed!');     // socket.remoteAddress + ' ' + socket.remotePort);  });}).listen(listenPort);//服务器监听事件server.on('listening',function(){
  console.log("server listening:" + server.address().port);});//服务器错误事件server.on("error",function(exception){
  console.log("server error:" + exception);});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

client端代码

var net = require('net');var port = 8080;var host = '127.0.0.1';var client= new net.Socket();//创建socket客户端client.setEncoding('binary');//连接到服务端client.connect(port,host,function(){
  client.write('hello server');  //向端口写入数据到达服务端});client.on('data',function(data){
  console.log('from server:'+ data);  //得到服务端返回来的数据});client.on('error',function(error){
//错误出现之后关闭连接  console.log('error:'+error);  client.destory();});client.on('close',function(){
//正常关闭连接  console.log('Connection closed');});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

运行结果如下

这里写图片描述

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!希望你也加入到我们人工智能的队伍中来!

这里写图片描述
你可能感兴趣的文章
Java 基本数据类型笔记by STP
查看>>
IDEA创建Maven项目时 loading archetype list转菊花转十年解决方案
查看>>
Mac启动tomcat
查看>>
报错: java.sql.SQLException: The server time zone value '�й�' is unrecognized or represents more ...
查看>>
使用xshell对服务器上的sql文件进行操作(mysql导入Linux)
查看>>
Spirngboot 后台操作一切正常并无报错,但是前端出现404错误
查看>>
java错误:java.lang.String can not be cast to java.math.BigDecimal
查看>>
Linux导出数据库文件mysql
查看>>
xshell查看程序代码后台的动态日志
查看>>
Java 根据经纬度计算实际距离
查看>>
mysql 分页limit 语句
查看>>
微信小程序——登陆凭证校验报错{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: weh8ka0297hc58 ]"}
查看>>
Java(百度地图API)使用坐标的经纬度得到具体的城市信息
查看>>
Javase->Javaee->Javaweb联系与区别
查看>>
c语言中关于int *p = &a 的解读
查看>>
解决Springboot2中无法访问在static/image/中的静态图片!终于解决啦
查看>>
牛客网华为机试——合并表记录
查看>>
算数基本定理
查看>>
Sliding Window(POJ-2823)
查看>>
A. Greed CodeForces - 892A
查看>>