WSAAsyncSelect并从另一个线程发送

时间:2018-03-15 22:29:43

标签: c++ multithreading visual-studio-2017 winsock wsaasyncselect

我正在使用C ++和Winsock创建TCP客户端。 我创建了一个仅消息窗口,它将处理我使用WSAAsyncSelect注册的WM_SOCKET消息。

我的问题如下:我需要从另一个线程(我的应用程序的GUI线程)发送数据,我可以安全地从该线程调用'send'函数,或者我可能需要使用一些锁定接口(互斥体) )为了发送数据?

1 个答案:

答案 0 :(得分:1)

从接收的线程发送不同的线程应该没有问题。

对于数据报套接字,您甚至可以同时发送多个线程(消息将被交错但不会混合)。

对于包含TCP的流套接字,多个同时发送者可以混合数据,因此建议一次只发送一个发送线程。但即使有一个发送线程限制,它也不必与接收线程相同。