c++ - Winsock - 从套接字读取、写入、发送和接收的最佳方式

标签 c++ sockets networking winsock winsock2

在单个线程上从多个客户端套接字读取和写入的最佳方法是什么?我听说 select() 很老套,还有更好的选择。目前最好的选择是使用 WSAAsyncSelectWSAEventSelect 之一吗?

此外,WSARecv()recv(),以及WSASend()send() 有什么区别? WSA 版本是通过 winsock 发送和接收数据的最现代方式吗?

最佳答案

如果您的单线程也实现了 GUI,那么 WSAAsyncSelect 就是为此目的而设计的:您可以通过 Windows 队列中的消息获取套接字通知,无论如何您的 GUI 线程都必须为其提供服务。

如果你的单线程专用于套接字并且不需要消息循环,那么 WSAEventSelect 可能更方便,也更快一点。

关于c++ - Winsock - 从套接字读取、写入、发送和接收的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24892422/

相关文章:

c++ - 遍历 BST 时出现 Stackoverflow 异常

C++ GUI 文本不显示

c# - 关于我的C编程中的逻辑方程

java - 监听 HTTP 请求

javascript - 快速路由socket.io发出客户端未捕获的数据

java - 创建 DatagramSocket 之前检查端口的可用性

c - 在 POSIX C 中获取自己的外部 IP 地址

python - 如何从 python 包中启动子模块?

ios - 为什么这个iOS应用无法访问网络?

c++ - 如何在c++中为lua设置错误输出流