之前使用的是TCP协议的Socket,通过监听ServerSocket可以获取到一对一的Socket对象,然后通过多线程每个线程单独的去处理收发信息。
while (true){
Socket socket = serverSocket.accept();//调用accept()方法,开始监听,等待客户端连接
SocketThread socketThread = new SocketThread(socket);//多线程单独处理socket的收发
socketThread.start();
}
现在需要更换成UDP协议的Socket,但是现在不明白一个问题,如果有多个发送方,一个接受方,接收方怎么开启线程去单独处理对应的发送方发送的数据和信息?希望大佬解答一下
UDP一个端口统一接收数据,多个发送方如果向同一个端口发送数据则没法分线程处理,跟TCP有黏报现象不同,UDP接收函数返回的基本都是一个完整报文。获取发送方的地址,可以报发送方地址放到报文中。
锁