c++ - 在 Windows 环境中使用 C/C++ 联网

标签 c++ c windows sockets

在 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/

相关文章:

c++ - 为什么显式运算符 std::string 不起作用

对如何 hell 般地打印数组感到困惑

windows - Python 3.6,用于 64 位 Windows 上 11g 客户端的 cx_oracle

c++ - 确定窗口捕捉距离

c++ - 为什么 std::move 会阻止 RVO(返回值优化)?

c++ - UDP端口的低延迟读取

c++ - 使用两个访问者 boost 图形库

c# - 为什么不能在if语句中写Console.Writeline()?

python - C++程序中调用Cython(Python3.6)

windows - 相当于 Windows 的 xkill