gpt4 book ai didi

javascript - 无法从 Java Socket Server 向 NodeJS 客户端发送数据

转载 作者:行者123 更新时间:2023-12-02 06:16:10 25 4
gpt4 key购买 nike

我正在 Socket 服务器 (Java) 和 Socket 客户端 (NodeJS) 之间建立实时连接。这是用于网络界面的。

我可以将数据从 NodeJS 发送到 Java,但反之则不行。我在代码中注释了我指的位置。我已经尝试过,就像您在 out.write("Hello World\n"); 中看到的那样(当然,使用刷新)。我也尝试过 out.println("Hello World"); (当然,还有冲洗)。

public class WebHandler {

private ServerSocket server;
private static Socket sock;

public void listen(int port) {
try {
server = new ServerSocket(port);
} catch (IOException e) {
System.out.println("Could not listen on port " + port);
System.exit(-1);
}

Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new BukkitRunnable() {
@Override
public void run() {
try {
System.out.println("Waiting for connection");
final Socket socket = server.accept();
sock = socket;
final InputStream inputStream = socket.getInputStream();
final InputStreamReader streamReader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(streamReader);

// readLine blocks until line arrives or socket closes, upon which it returns null
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}

WebHandler.sendMessage();

} catch (IOException e) {
System.out.println("Accept failed: " + port);
System.exit(-1);
}
}
}, 0, 100);

}

// CRITICAL

public static void sendMessage() {
try {
PrintWriter out = new PrintWriter(sock.getOutputStream());
out.write("Hello World from Java!" + "\n");
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}

}

var net = require('net');

var client = net.connect(9090, 'localhost');
client.setEncoding('utf8');
setInterval(function() {
console.log("Writing....")
var ret = client.write('Hello from node.js\n');
console.log("Wrote", ret)
}, 5000);

// CRITICAL

client.on('data', function(data) {
console.log('Received: ' + data);
});

请不要因为 Bukkit.getScheduler() 而让您分心...它只是一个任务管理器。提前致谢:D

最佳答案

您没有收到来自java的消息,因为您设置了一个时间间隔,该时间间隔将始终向服务器发送消息,并且服务器将卡在while循环中。

我建议在某个时刻停止间隔,以便调用 sendMessage()。

关于javascript - 无法从 Java Socket Server 向 NodeJS 客户端发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870574/

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