我想使用Nodejs实现一个简单的客户端-服务器连接。
但是我遇到了以下问题。
考虑以下代码:
server.js:
var net = require('net'),
sys = require('sys');
net.createServer(onConnection).listen(8124);
function onConnection(socket) {
socket.setNoDelay(true);
socket.addListener("connect", function () {
sys.puts('client connected: ' + this.remoteAddress);
});
socket.addListener("data", function (data) {
sys.puts("message: \n" + data + "\n - end of msg.");
});
socket.addListener("end", function () {
sys.puts('end of connection');
this.end();
});
}
sys.puts('Server running at 127.0.0.1:8124');
client.js:
var net = require('net'),
sys = require('sys');
var stream = net.createConnection(8124);
stream.addListener("connect", function(){
sys.puts('connected');
stream.write('a');
stream.flush();
stream.write('b');
stream.flush();
});
stream.addListener("data", function(data){
sys.puts("Message: \n" + data + "\n - end of msg.");
});
当我运行client.js时,有时只会收到一条消息“ab”,而不是两条消息“a”和“b”。
有没有什么“正确的方法”来处理这种情况?
ab
。请注意,这是一句完整的英语句子,其中涉及了一个专业术语“TCP/IP”,翻译时需要根据上下文和背景进行适当的解释。 - Kornel