70得票5回答
如何支持IPv4和IPv6连接

我目前正在开发一个UDP套接字应用程序,需要添加支持,以便IPV4和IPV6连接可以向服务器发送数据包。 我希望有人能帮助我指明方向,因为我找到的大多数文档都不完整。如果您能指出Winsock和BSD套接字之间的任何区别,那将非常有帮助。 提前感谢您的帮助!

59得票4回答
MinGW 链接器错误: winsock

我正在使用MinGW编译器在Windows上编译我的带有套接字的C++应用程序。我的链接命令看起来像这样:g++.exe -Wall -Wno-long-long -pedantic -lwsock32 -o dist/Windows/piskvorky { there are a lot o...

51得票2回答
为什么我应该使用非阻塞或阻塞套接字?

首先,我必须问一下,在哪些情况下是最好的?比如实时MMORPG服务器。如果我为每个客户端创建一个线程而不是使用非阻塞套接字会怎样?或者如果我使用一个包含所有非阻塞套接字的线程会怎样?您能解释一下它们的优点吗?

40得票5回答
我需要在客户端程序中绑定UDP套接字才能接收数据吗?(我总是得到WSAEINVAL错误)

我正在使用Winsock创建一个UDP套接字(AF_INET,SOCK_DGRAM,IPPROTO_UDP),并尝试在此套接字上进行recvfrom,但它始终返回-1,并出现WSAEINVAL(10022)错误。为什么会这样? 当我使用bind()绑定端口时,这种情况不会发生,但我已经读过绑...

36得票3回答
如何从WSAGetLastError()中检索错误字符串?

我正在将一些套接字代码从Linux移植到Windows。 在Linux中,我可以使用strerror()将errno代码转换为人类可读的字符串。 MSDN文档显示了返回自WSAGetLastError()的每个错误代码的等效字符串,但我没有看到如何检索这些字符串的任何内容。此处strerr...

36得票1回答
socket的Shutdown、Disconnect、Close和Dispose分别具有什么作用?

很难找到一份简单明了的解释,专门为网络编程新手讲解这四种方法,它们实际上是做什么的。人们通常只陈述在特定场景下关闭套接字的正确方式,但不说每个步骤背后发生了什么。 按照授人以鱼不如授人以渔的哲学,你能解释一下Shutdown、Disconnect、Close和Dispose这四种方法吗?

32得票5回答
在同一台机器上通过UDP套接字发送数据可靠吗?

如果我使用UDP套接字进行进程间通信,我能否期望所有发送的数据都按照相同的顺序被另一个进程接收到? 我知道这在一般情况下对于UDP并不成立。

31得票4回答
'inet_addr': 使用inet_pton()或InetPton()代替或定义_WINSOCK_DEPRECATED_NO_WARNINGS。

我正在使用Visual Studio 2015,并尝试编译此前在VS 2013上运行的代码。'inet_addr': 使用inet_pton()或InetPton()代替,或者定义_WINSOCK_DEPRECATED_NO_WARNINGS。代码如下:partner.sin_addr.s_a...

29得票4回答
如何在Windows中清除路由表?

我正在尝试编写一个程序,以便随时更改网络的默认网关。但是似乎每个进程中都有路由表缓存,因此我无法精确控制网络行为。我能否只刷新该进程的路由表? 例如,如果我先执行了Iexplore.exe,然后将默认网关更改为韩国VPN,IE仍然会连接到美国默认网关。但是如果我先更改默认网关,然后再执行Ie...

28得票5回答
Boost::asio中的winsock和winsock 2兼容性问题

我的项目使用了windows.h,其中也用到了winsock.h,而我需要包含boost:asio,它使用的是winsock2.h。因此我得到了许多错误,提示Winsock.h已经被包含了。 我可以定义WIN32_LEAN_AND_MEAN来避免windows.h使用winsock。但问题是,...