使用net模块实现基于TCP的数据通信

本文通过两个示例文件 server.js 和 client.js 展示了如何使用 Node.js 的 net 模块创建 TCP 服务器与客户端,实现双方的数据收发功能。通过在两个命令行窗口中分别运行 server.js 和 client.js,可以观察到服务器与客户端成功建立连接并交换数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

server.js文件:

var net = require("net");
var server = net.createServer();
server.on("connection",function(socket){
    console.log("客户端与服务器端连接已建立");
    socket.setEncoding("utf8");
    socket.on("data",function(data){
        console.log("已接收客户端发送的数据:"+data);
        socket.write("确认数据:"+data);
    });
    socket.on("error",function(err){
        console.log("与客户端通信的过程中发生了一个错误,错误编码为%s",err.code);
        socket.destroy();
    });
    socket.on("end",function(){
        console.log("客户端连接被关闭");
        server.unref();
    })
});
server.listen(8431,'localhost',function(){
    console.log("服务器端开始监听");
    address = server.address();
    console.log("被监听的地址信息为%j",address);
});
server.on('error',function(e){
    if(e.code == 'EADDRINUSE'){
        console.log("服务器地址及端口已被占用");
    }
});


client.js文件:

var net = require("net");
var client = new net.Socket();
client.setEncoding("utf8");
client.connect(8431,"localhost",function(){
    console.log("已连接到服务器端");
    client.write("你好");
});
client.on("data",function(data){
    console.log("已接收服务器端发送的数据:"+data);
});
client.on("error",function(err){
    console.log("与服务器连接或通信的过程中发生了一个错误,错误编码为%s",err.code);
    client.destroy();
});


分别在两个命令行窗口执行

node server.js

node client.js

结果:



非常好用的C#.netTCP控件,this.vmTcpIpServer1.Collapse = false; this.vmTcpIpServer1.EnableLog = false; this.vmTcpIpServer1.IdleTime = -1; this.vmTcpIpServer1.LocalUsingIpAddr = "127.0.0.1"; this.vmTcpIpServer1.Location = new System.Drawing.Point(9, 17); this.vmTcpIpServer1.LogFilePath = "D:\\AppLog"; this.vmTcpIpServer1.MaxLogShownLines = 30; this.vmTcpIpServer1.Name = "vmTcpIpServer1"; this.vmTcpIpServer1.PackageHeader = UNYC.TcpIp.PackageHeader.None; this.vmTcpIpServer1.PackageTailer = UNYC.TcpIp.PackageTailer.None; this.vmTcpIpServer1.PortNum = 30000; this.vmTcpIpServer1.SaveToLogFile = false; this.vmTcpIpServer1.ShowTransContents = false; this.vmTcpIpServer1.Size = new System.Drawing.Size(266, 405); this.vmTcpIpServer1.TabIndex = 0; // // vmTcpIpClient1 // this.vmTcpIpClient1.AutoRecover = false; this.vmTcpIpClient1.Collapse = false; this.vmTcpIpClient1.ConnRetries = -1; this.vmTcpIpClient1.EnableLog = false; this.vmTcpIpClient1.IdleTime = -1; this.vmTcpIpClient1.IpAddr = "192.168.100.231"; this.vmTcpIpClient1.Location = new System.Drawing.Point(311, 17); this.vmTcpIpClient1.LogFilePath = "D:\\AppLog"; this.vmTcpIpClient1.MaxLogShownLines = 100; this.vmTcpIpClient1.Name = "vmTcpIpClient1"; this.vmTcpIpClient1.PackageHeader = UNYC.TcpIp.PackageHeader.None; this.vmTcpIpClient1.PackageTailer = UNYC.TcpIp.PackageTailer.None; this.vmTcpIpClient1.PingInterval = 500; this.vmTcpIpClient1.PortNum = 912815; this.vmTcpIpClient1.SaveToLogFile = false; this.vmTcpIpClient1.ShowTransContents = false; this.vmTcpIpClient1.Size = new System.Drawing.Size(266, 405);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值