我遵循了有关Java聊天应用程序的YouTube教程。看起来一切正常,只是在测试程序时,该消息不会显示在屏幕上。这是一个相当大的项目,因此“最小可复制示例”可能很难。
屏幕上的任何消息,甚至“用户已连接”消息都不会显示。
public void send(String message) {
try {
if (!message.startsWith("\\")) {
message = name + ": " + message;
}
byte[] data = message.getBytes();
DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
socket.send(packet);
System.out.println("Sent message to " + address.getHostAddress() + ":" + port);
} catch (Exception e) {
e.printStackTrace();
}
}
private void listen() {
Thread listenThread = new Thread("ChatProgram Listener") {
public void run() {
try {
while (running) {
byte[] data = new byte[1024];
DatagramPacket packet = new DatagramPacket(data, data.length);
socket.receive(packet);
String message = new String(data);
message = message.substring(0, message.indexOf("\\e"));
if (!isCommand(message, packet)) {
ClientWindow.printToConsole(message);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}; listenThread.start();
}
private static boolean isCommand(String message, DatagramPacket packet) {
if (message.startsWith("\\con:")) {
}
return true;
}
我希望这会将消息以及用户名打印到屏幕上。
很抱歉,MRE很长,但是在此先感谢您的帮助! :)