我创建了一个UDP服务器。这是一个骨架
public class UDPserver {
public static void main(String[] args) throws Exception{
while(true){
.... some code ...
packet = new DatagramPacket ( data , data.length, packet.getAddress(), packet.getPort() );
.... some code ...
socket.receive( ... );
}
}
}
现在,我想让它处理多个请求,所以我检查了我必须实现Runnable。
public class UDPserver implements Runnable { }
我读到我还需要一个run()。但我不明白run()。我应该将整个while(true)
语句放在run()中吗?那么main()呢?任何人都可以展示如何更改我的代码以处理多个请求?
感谢
答案 0 :(得分:0)
将所有代码移到UDPServer的run方法中(包括while(true))
在您的主要方法中:
UDPServer udpServer = new UDPServer();
udpServer.start();
答案 1 :(得分:0)
您还可以为每个新连接使用新线程进行执行。例如:
class PacketPerforming extends Thread {
DatagramPacket pak;
PacketPerforming(DatagramPacket pak) {
super();
this.pak = pak;
}
public void run() {
// do somethoing with pak
}
}
// in your server thread
while (true) { // i prefered wirte for (;;)
DatagramPacket pak; // take pak object form remote socket
PacketPerforming perform = new PacketPerforming(pak);
perform.start();
}