我试图建立一个聊天室的场景,服务器将继续监听来自客户端的任何数据包,同时能够检测服务器是否输入了要发送给客户端的任何内容
这是我到目前为止所做的,但我想不出一个正确的方法,因为现在我的代码将等待readLine()
的输入for(;;){
String input=null;
input = inFromUser.readLine();
if (input.equals("exit")){
break;
}else if (!input.equals(null)){
byte[] newText = input.getBytes();
sendPacket = new DatagramPacket(newText, newText.length, IPAddress, 9876);
serverSocket.send(sendPacket);
System.out.println("TO CLIENT(BOB): "+ new String(newText));
}else{
receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
realSentence = Arrays.copyOf(receivePacket.getData(), receivePacket.getLength());
String fromHost = new String(realSentence);
System.out.println("FROM CLIENT(BOB): " + fromHost);
}
}
所以我想知道无论如何都要监听数据报,同时能够读取终端上输入的文字并发送给客户
答案 0 :(得分:0)
您需要一个多线程程序。一个用于侦听传入数据包的线程,另一个用于侦听 等待用户输入内容。