gpt4 book ai didi

sockets - 如何仅使用 Net 模块(而非 socket.io)向 node.js 中的单个客户端发送消息

转载 作者:搜寻专家 更新时间:2023-11-01 00:46:43 25 4
gpt4 key购买 nike

简单代码:

process.stdin.resume()
process.stdin.setEncoding('utf8');
var server = createServer();
server.listen(9999);
server.on('connection',function(sock){
console.log('CONNECTED:'+sock.remoteAddress+":"+sock.remotePort);
process.stdin.on('data',function(send){
sock.write(send);
});
}
  • 从 10.10.10.1 和 10.10.10.2 接收连接时,消息“CONNECTED:10.10.10.1:xxx”和“CONNECTED:10.10.10.2:xxx”在终端显示

  • 为了向客户端发送消息,我使用了 sock.write(send)..但是,所有客户端都收到了消息

  • 如何向特定客户发送消息。通过谷歌搜索,有很多 socket.io 相关文档(解决方案)..但是,在使用 socket.io 之前,我想了解 node.js 本身。(或 JavaScript 本身?)

  • 阅读 Vadim 的评论后,我在下面写下了更多代码。完全工作的代码。

  • 我补充两点。根据 Vadim 的评论,添加属性 sock.id并使用属性 sock.remoteAddress,将服务器的标准输入消息发送到
    10.10.10.1 仅限客户端

<p></p>

var net = require('net')
process.stdin.resume()
process.stdin.setEncoding('utf8');
var server = net.createServer();
server.listen(9999);
server.on('connection',function(sock){
sock.write('input your ID: ',function(){
var setsockid = function(data){
id=data.toString().replace('\r\n','');
console.log('ID:'+id+' added!!')
sock.id=id
sock.removeListener('data',setsockid);
};
sock.on('data',setsockid);
sock.on('data',function(data){
d=data.toString().replace('\r\n','');
console.log(sock.id+' say: '+d);
});
});
console.log('CONNECTED:'+sock.remoteAddress+":"+sock.remotePort);
process.stdin.on('data',function(send){
if (sock.remoteAddress=='10.10.10.1') sock.write(send);
});
});

最佳答案

您问题的答案在 Node.JS main page 上.

var net = require('net');

var server = net.createServer(function (socket) {
socket.write('Echo server\r\n');
socket.pipe(socket);
});

server.listen(1337, '127.0.0.1');

关于sockets - 如何仅使用 Net 模块(而非 socket.io)向 node.js 中的单个客户端发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9797578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com