【发布时间】:2020-07-10 05:00:24
【问题描述】:
我正在尝试将数据从 Node JS 网络服务器发送到 Java 应用程序。这是我的 JS 代码:
var server = net.createServer(function (c) { //'connection' listener
console.log('server connected');
c.on('end', function () {
console.log('server disconnected');
});
c.on('data', (d) => {
console.log(data);
});
c.pipe(c);
setInterval(() => {
let obj = { "foo": "bar" };
c.write(JSON.stringify(obj));
}, 3000)
});
server.listen(58430, function () { //'listening' listener
console.log('server bound');
});
所以我现在只是在调试,并尝试按时间间隔发送数据 (foo:bar)。
这是我的 java 端,循环运行:
InputStreamReader inFromClient = new InputStreamReader(client.getInputStream());
while (running.get()) {
String data = Tools.ReadUntilNull(inFromClient);
Log.debug("Received: " + data);
}
其中'client' 是侦听正确端口的套接字。 'running' 是一个真实的原子布尔值。
Tools.ReadUntilNull 对应这个:
public static String ReadUntilNull(InputStreamReader reader) throws IOException {
StringBuilder sb = new StringBuilder();
char[] results = new char[1];
int bytes_read = reader.read(results);
while (results[0] != 0x00 && bytes_read == 1) {
sb.append(results[0]);
bytes_read = reader.read(results);
}
return sb.toString();
}
我的 Node.JS 应用程序记录服务器已绑定和连接。只有当我发送数据时,我似乎无法在我的 Java 客户端中接收它。
我只是学习java,所以请放轻松^^
【问题讨论】:
标签: javascript java node.js sockets