我正在创建一个基于 UDP 的聊天客户端。主要结构是有一个客户端注册的服务器,客户端也可以请求与另一个在服务器上注册的客户端建立连接。客户端是使用伪代码的结构如下:
public UDPClient() {
// Create datagram socket
// Execute RECEIVE thread using datagram socket above
// Execute SEND thread using datagram socket above
}
这个想法是让发送和接收在不同的线程上执行,这样我就不会在接收时被阻塞 I/O。这两个线程在它们的运行方法中都有循环,允许您不断地发送和接收消息。我遇到的问题是这个。如果接收线程上的消息改变了我的 SEND 应该如何执行,我如何将它传达给 SEND 线程?我是否必须向自己发送数据报,或者我可以以某种方式在代码中传达这个信息?