Java 用于处理多个客户端的UDP服务器
我创建了一个UDP服务器。这是一具骷髅Java 用于处理多个客户端的UDP服务器,java,udp,Java,Udp,我创建了一个UDP服务器。这是一具骷髅 public class UDPserver { public static void main(String[] args) throws Exception{ while(true){ .... some code ... packet = new DatagramPacket ( data , data.length, packet.getAddress(),
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 { }
我读到我还需要跑步。但我不懂跑步。我应该把整个whiletrue语句放在运行中吗?梅因怎么样?有人能告诉我如何修改上面的代码来处理多个请求吗?
谢谢移动UDPServer的run方法中的所有代码,包括whiletrue 在您的主要方法中:
UDPServer udpServer = new UDPServer();
udpServer.start();
为了确保没有例外不会破坏主循环,请记住捕获并处理whiletrue循环中可能出现的所有异常
您还可以为每个新连接使用新线程来执行。例如:
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();
}