Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写一个点对点应用程序,其中两个客户端对等点之间的连接必须是双工的,以便两个客户端能够同时发送和接收。是否可以使用单个插座或我需要使用两个插座?
这是可能的; 我知道的每个操作系统上的套接字都是全双工的——你可以同时发送和接收。然而,要实现真正的全双工通信,您必须确保您的应用程序可以在等待接收时进行传输——这意味着要么使用非阻塞 IO 和事件轮询(在 Linux 上有selectand epoll,或者在 Windows 上类似WSAAsyncSelect或重叠 IO)或使用用于发送和接收的不同线程。
select
epoll
WSAAsyncSelect