根据此article,从多个线程调用WSASend()
或WSARecv()
并不安全。但是,从两个线程同时调用WSASend()
和WSARecv()
是否安全?
答案 0 :(得分:2)
从一个线程中的套接字读取同时写入另一个线程中的同一个套接字总是安全的。涉及单独的内核缓冲区。无论您使用的是阻塞,非阻塞,重叠或IOCP I / O逻辑。
不安全的是同时从多个线程中的同一个套接字读取,或同时在多个线程中写入同一个套接字。这需要线程之间的同步,因此它们的发送/接收数据不会相互重叠。