在单个线程上从多个客户端套接字读取和写入的最佳方法是什么?我听说 select()
很老套,还有更好的选择。目前最好的选择是使用 WSAAsyncSelect
、WSAEventSelect
之一吗?
此外,WSARecv()
和recv()
,以及WSASend()
和send() 有什么区别
? WSA 版本是通过 winsock 发送和接收数据的最现代方式吗?
最佳答案
如果您的单线程也实现了 GUI,那么 WSAAsyncSelect 就是为此目的而设计的:您可以通过 Windows 队列中的消息获取套接字通知,无论如何您的 GUI 线程都必须为其提供服务。
如果你的单线程专用于套接字并且不需要消息循环,那么 WSAEventSelect 可能更方便,也更快一点。
关于c++ - Winsock - 从套接字读取、写入、发送和接收的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24892422/