Node.js使用TCP通讯

时间:2022-05-21 08:02:55

原文地址:https://www.cnblogs.com/ay-a/p/9822057.html

Node.js 的 net 模块可以方便的创建TCP 服务,,以下是使用 net 模块创建的tcp 服务和客户端的一个简单例子。

一、创建TCP Server

var net = require('net');
var tcp_server = net.createServer(); // 创建 tcp server var Sockets = {};
var SocketID = ; // 监听 端口
tcp_server.listen(,function (){
console.log('tcp_server listening 5678');
}); // 处理客户端连接
tcp_server.on('connection',function (socket){
console.log(socket.address());
Sockets[SocketID] =socket;
SocketID++;
DealConnect(socket)
}) tcp_server.on('error', function (){
console.log('tcp_server error!');
}) tcp_server.on('close', function () {
console.log('tcp_server close!');
}) // 处理每个客户端消息
function DealConnect(socket){ socket.on('data',function(data){
data = data.toString();
// 向所有客户端广播消息
for(var i in Sockets){
Sockets[i].write(data);
}
// socket.write(data);
console.log('received data %s',data);
}) // 客户端正常断开时执行
socket.on('close', function () {
console.log('client disconneted!');
})
// 客户端正异断开时执行
socket.on("error", function (err) {
console.log('client error disconneted!');
});
}

二、创建 TCP Client

var net = require('net');

// 指定连接的tcp server ip,端口
var options = {
host : '172.30.20.10',
port :
} var tcp_client = net.Socket(); // 连接 tcp server
tcp_client.connect(options,function(){
console.log('connected to Server');
tcp_client.write('I am tcp_client of node!');
}) // 接收数据
tcp_client.on('data',function(data){
console.log('received data: %s from server', data.toString());
}) tcp_client.on('end',function(){
console.log('data end!');
}) tcp_client.on('error', function () {
console.log('tcp_client error!');
})