0

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

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

4

1 回答 1

1

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

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

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

于 2018-03-15T22:56:42.173 回答