在使用IOCP时,从两个线程安全地调用WSASend()和WSARecv()

Is calling WSASend() and WSARecv() from two threads safe when using IOCP?

本文关键字:线程 两个 安全 调用 WSARecv WSASend IOCP      更新时间:2023-10-16

基于本文,从多个线程调用WSASend()WSARecv()是不安全的。但是,从两个线程同时调用WSASend()WSARecv()安全吗?

从一个线程中的套接字读取,同时向另一个线程的同一套接字写入总是安全的。涉及单独的内核缓冲区。无论您使用的是阻塞、非阻塞、重叠还是IOCP I/O逻辑。

不安全的是在多个线程中同时从同一个套接字读取,或者在多个螺纹中同时向同一套接字写入。这需要线程之间的同步,以便它们发送/接收的数据不会相互重叠。