12得票3回答
Windows:基于事件的重叠IO与IO完成端口,现实世界性能

我正在构建一个服务器应用,并研究使用重叠IO来处理套接字。我发现有些人说“永远不要使用hEvent”,或者“IO完成端口会更快”等等,但是没有人解释为什么不能使用hEvent,也没有提供任何有关完成端口速度更快的真实数据或数字,以及相差多少。 hEvent与WaitForMultipleOb...

19得票5回答
结构体的序列化

假设我有一个结构体,其中包含我想要使用winsock 2将其成员值发送到另一个系统的内容。 我正在使用C ++语言。 如何将其转换为char *,并考虑在发送之前必须对结构进行序列化,以及如何在另一端将char *反序列化为结构?我发现boost序列化被建议用于类似的问题,但是否可以用简短的代...

9得票1回答
我是否需要链接Ws2_32.lib库?

所有在MSDN上的Winsock2示例都表明我必须像以下这样静态链接Winsock2库: #pragma comment(lib, "ws2_32.lib") 确保构建环境链接到Winsock库文件?>Ws2_32.lib。使用Winsock的应用程序必须链接到Ws2_32.lib...

12得票2回答
如何在mingw编译器中使用inet_pton()函数?

我正尝试将一个已经兼容IPv4的C程序添加IPv6兼容性,但编译器出现了问题。我目前使用mingw32-gcc-4.6.2进行编译,在使用inet_pton函数时会出现链接错误。 我尝试让它在vista上编译(因为inet_pton是vista函数),但似乎整个函数在mingw中都找不到。 ...

19得票2回答
在一个进程中,能否判断WSAStartup是否已经被调用?

我已经开始编写一个利用 sockets 的 ActiveX 控件。 使用此控件的应用程序可能会或可能不会同时使用 sockets。 我的控件是否能够判断 WSAStartup 是否已经被调用? 如果不能,就调用它。通过一个简单的测试可以发现,多次调用 WSAStartup 是被允许的。 但...

26得票5回答
无法定义对 `__imp_WSACleanup' 的引用

这是我的第一个使用 winsock 的程序。正如您所看到的,我已经 #include <winsock2.h> 并链接了 ws2_32.dll,但代码仍无法编译:#include<winsock2.h> #pragma comment(lib, "ws2_32") cl...

8得票3回答
为特定套接字增加TCP接收窗口

如何增加特定套接字的TCP接收窗口大小? - 我知道可以通过设置注册表项TcpWindowSize来增加所有套接字的接收窗口大小,但如何只针对某个特定的套接字进行操作? 根据MSFT的文档,方法是: 调用Windows套接字函数setsockopt,在每个套接字上设置接收窗口。 但在se...

13得票1回答
close()和closesocket()可以互换使用吗?

我在这里看到很多答案都建议使用 close() 来销毁socket,但我所使用的来自msdn 的指南让我使用 closesocket()。我想知道两者之间是否有区别,以及使用其中一个或另一个的原因。 在这两种情况下,我都看到建议使用 shutdown(),所以都可以正常使用。

7得票1回答
为什么MinGW-w64需要手动包含winsock2?

一些代码和相关的警告/错误: #include <windows.h> #include <iphlpapi.h> int main() { } F:/Prog/mingw-w64/x86_64-4.9.2-win32-seh-rt_v3-rev1/mingw6...

9得票4回答
所有调用getaddrinfo()函数返回11001错误代码。

我遇到了连接网络设备的问题。每当我调用getaddrinfo()函数时,它返回11001。我已经用IP_ADDRESS字符串中的许多不同IP进行了检查。我使用nslookup检查了所有无法工作的数字,大多数都存在。 getaddrinfo-returns-always-11001-host...