Java Server收听客户端并同时接收用户输入并发送给客户端

时间:2014-01-29 15:09:21

标签: java udp client-server

我试图建立一个聊天室的场景,服务器将继续监听来自客户端的任何数据包,同时能够检测服务器是否输入了要发送给客户端的任何内容

这是我到目前为止所做的,但我想不出一个正确的方法,因为现在我的代码将等待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);
    }
}

所以我想知道无论如何都要监听数据报,同时能够读取终端上输入的文字并发送给客户

1 个答案:

答案 0 :(得分:0)

您需要一个多线程程序。一个用于侦听传入数据包的线程,另一个用于侦听 等待用户输入内容。