假设我们有一个使用winsock 来实现tcp 通信的应用程序。对于每个套接字,我们创建一个线程并在其上进行块接收。当数据到达时,我们想通知其他线程(监听线程)。
我想知道实现这一点的最佳方法是什么:
摆脱这种设计并使用非阻塞套接字,那么监听线程将不得不不断迭代并调用非阻塞接收,从而使其线程安全(套接字没有额外的线程)
使用异步过程调用来通知侦听线程——这又将不得不等待 apc 为它们排队。
实现一些线程安全的消息队列,每个套接字线程将向其发布消息,并且侦听器将再次检查它并从中提取数据。
另外,我阅读了有关 WSAAsyncSelect 的信息,但我看到它用于将消息发送到窗口。其他线程没有类似的东西吗?(好吧我猜apcs是......)
谢谢!