2014-01-29 50 views
0

我试图建立一个聊天室类型的场景,其中服务器将持续监听来自客户端的任何数据包,同时能够检测服务器是否键入任何东西发送到客户端Java服务器监听客户端并同时接收用户输入并发送到客户端

这是我迄今为止所做的,但我不能想到正确的方式来做到这一点,因为现在我的代码会卡住等待在的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

除了多线程之外,还有其他方法吗? – user1958567

相关问题