我有节点服务器,此服务器与其他端TCP服务器创建tcp套接字连接。我正在尝试管道tcp数据但是当我第二次收到消息时,我在同一个流中同时获得了新消息和前一个消息(第一个)。我该如何解决这个问题?
var net = require('net');
var HOST = '127.0.0.1'; // parameterize the IP of the Listen
var PORT = 6969; // TCP LISTEN port
net.createServer(function(sock) {
console.log('CONNECTED: ' + sock.remoteAddress + ':' + sock.remotePort);
sock.on('data', function(data) {
sock.write(data);
socket.pipe(socket);
});
sock.on('close', function(data) {
console.log('CLOSED: ' + sock.remoteAddress + ' ' + sock.remotePort);
});
}).listen(PORT, HOST);
答案 0 :(得分:1)
我假设您要创建一个echo服务器。
所以你有两个选择 - 管道:
class="ng-scope container"
或者您订阅数据并手动写入套接字(与管道相同)
// [...]
net.createServer(function(sock) {
sock.pipe(sock);
}
// [...]
使用当前程序,当有人在第一次回显数据时发送数据,但也创建管道连接,这意味着下次数据发送两次(如您所述)。