gpt4 book ai didi

Java套接字客户端无法从 Node 服务器接收数据

转载 作者:行者123 更新时间:2023-12-01 10:08:00 26 4
gpt4 key购买 nike

我是nodejs的新手,我想通过nodejs创建一个套接字服务器。

我写了一些简单的代码:

nodejs:

var sockets = [];
net.createServer(function (client) {
sockets.push(client);
client.on('data', function (data) {
console.log(data);
client.write("you say:" + data);
setInterval(function(){
client.write("Hell from server");
}, 100);
});

client.on('end', function () {
sockets.splice(sockets.indexOf(client), 1);
})

}).listen(PORT, HOST);

java:

Socket client;
BufferedReader buf;
...
boolean flag = true;
while (flag) {
String echo = buf.readLine();
System.out.println(null == echo || "".equals(echo) ? "-null-" : echo);
if (null != echo && echo.contains("bye")) {
flag = false;
}
}

我认为这两个代码都是最简单的,但是当客户端向服务器发送数据时,客户端只收到一条消息你说:xxx,间隔写入可能会写入“缓冲​​区”,因为当客户端再次发布数据,客户端收到类似 Hell from serverHell from serverHell from serverHell from serverHell from serveryou say:xxx 的数据。为什么会这样?

当我尝试在 Node 服务器上捕获用户扫描仪时,结果相同:

var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});

rl.on('line', function (line) {
for (var i in sockets) {
if (sockets[i] && sockets[i].writable) {
sockets[i].write(line);
}
}

客户端也无法接收数据。

我该如何修复它?

最佳答案

你正在读台词,但你没有写台词。您需要为每条发送的消息添加行终止符。

关于Java套接字客户端无法从 Node 服务器接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36323841/

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