我一直在寻找这些信息,但在其他地方找不到:我正在构建一个带有服务器和固定数量客户端的多人游戏。我们的客户端是多线程的(一个线程用于游戏逻辑和可视化,一个线程用于接收消息)并且可以异步接收来自服务器的消息。使用 UDP 实现通信。
如果前一个线程调用 socket.receive() 方法而后一个线程也通过一个使用 socket.receive() 的循环会发生什么?
更具体地说,如果一条消息从服务器到达并且两个线程同时等待接收,那么两个线程是否都收到了消息?如果没有,是否定义了哪个线程将接收数据包?
请注意,两个线程都使用同一个套接字。