在 Windows 平台上使用套接字的最佳方式是什么?
我猜是基本套接字,TCP/IP。 也许是为了聊天客户端,或者只是为了学习。
谁能给我一个 WININET 用法的例子?
也许是 ftpgetfile()
最佳答案
这是一个非常宽泛的问题,很大程度上取决于您的需求。
你需要什么水平? HTTP/FTP?还是您自己的协议(protocol)的“只是套接字”?您需要什么样的性能(连接量、预期速度)?
如果您选择使用原始 API,您通常应该远离 WSAAsyncSelect,因为在“几个”并发连接之上性能很差。阻塞套接字和每个套接字线程也不太热门。 WSAEventSelect 有点棘手,但可以很好地完成工作(µtorrent 通过这种方式处理很多 并发连接)。花哨的真正高负载是 I/O 完成端口。您还可以查看 boost ASIO 以获得一些可移植性。
如果您想使用 HTTP/FTP 等标准协议(protocol),请检查 libcurl。或者,对于较少的需求和较小的开销,标准的 Windows WININET 功能(尽管有很多限制)。
要使用 WinINet 函数,请尝试启动 here - 可能不是样本,但至少给了你足够的东西来谷歌搜索;)
关于c++ - 在 Windows 环境中使用 C/C++ 联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/672426/