我正在编写一个点对点应用程序,其中两个客户端对等体之间的连接必须是双工的,这样两个客户端都能够同时进行发送和接收.是可以使用单个插座还是需要使用两个插座?
这是可能的; 我所知道的每个操作系统上的插座都是全双工的 - 您可以同时发送和接收.然而,为了实现真正的全双工通信,你必须确保你的应用程序可以传输,而等待接受-这意味着要么使用非阻塞IO和事件轮询(在Linux中有select和epoll,或在Windows之类的东西WSAAsyncSelect或重叠IO),或通过使用用于发送和接收的不同线程.