因此,基本上,我正在尝试在Java客户端和NodeJS服务器之间进行通信。 Java通过套接字发送消息,Node使用事件侦听器接收消息,然后Node尝试向Java发送响应。因为收到了消息,所以类似“确定”。
Java(在Main.java中)
try {
Socket s = new Socket("localhost", 6666);
// Send a message to the server
OutputStreamWriter out = new OutputStreamWriter(s.getOutputStream(), StandardCharsets.UTF_8);
out.write("test");
out.flush();
// Receive a message from the server
InputStream input = s.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String line = reader.readLine();
System.out.println(line);
} catch (Exception e) {
System.out.println(e);
}
NodeJS
var net = require('net');
var server = net.createServer(function (connection) {
console.log("Client connected");
connection.on('data', function (data) {
console.log('Request from', connection.remoteAddress, 'port', connection.remotePort);
console.log(data.toString())
connection.write("OK");
});
})
server.listen(6666, () => console.log(`Server is listening...`));
服务器显示:
Server is listening...
Client connected
Request from ::ffff:127.0.0.1 port 65025
test
但是客户端是空的,它没有得到服务器的响应。
我无法弄清楚问题出在哪里。我发现了无数双向套接字通信的示例,但是大多数示例都是在为Java / NodeJS编写的客户端/服务器之间。他们的代码与我编写的代码仍然相似,但是不起作用。非常感谢!