C ++:Windows套接字错误10013

时间:2013-06-15 11:55:45

标签: c++ sockets winsock

突然之间,我的电脑已停止让我绑定到套接字。它在昨晚工作,当我在编码几个小时后去测试一个功能时,没有任何东西可以绑定。

其他事实:

  • 相同的代码适用于我的其他PC,因此它显然是我的主设备机器所独有的。
  • 绑定到TCP端口8080(该应用程序具有迷你HTTP服务器)确实有效。
  • 我写过的其他应用程序在此计算机上也听不到相同的63000范围端口。

以下是一些失败的代码:

  err = WSAStartup(wVersionRequested, &wsaData);
  if(err == 0)
  {
    aSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(aSocket != INVALID_SOCKET)
    {
      SOCKADDR_IN        ReceiverAddr;
      // The IPv4 family
      ReceiverAddr.sin_family = AF_INET;
      // Port no. 63939
      ReceiverAddr.sin_port = htons(iPort);
      // From all interface (0.0.0.0)
      ReceiverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
      err = bind(aSocket, (SOCKADDR*)&ReceiverAddr, sizeof(ReceiverAddr));
      if(err == 0)
      {

我试过了:

  • 禁用我的Windows防火墙(如通用修补程序所示)
  • 禁用Windows Defender
  • 以管理员身份运行应用
  • 重新启动
  • 禁用/启用我的网络驱动程序
  • 重命名相关应用(如果防火墙设置为禁止)
  • 恢复到应用程序的已知良好版本
  • 尝试一些其他已知良好的网络应用程序(我们也用10013失败)
  • 在同一区域尝试不同的端口
  • 将我的网络类型从“public”更改为“home”

如果我运行netstat,则没有其他应用程序使用我正在尝试侦听的端口(通常是63000区域内和周围的TCP和UDP端口)。执行另一次快速netstat检查,当前绑定的最高本地端口为53843。

非常肯定我昨晚安装的唯一应用程序是Kerbal Space Program,我无法想象这会破坏我的网络驱动程序。

1 个答案:

答案 0 :(得分:2)

答案编辑:我的新理论是NetBalancer,因为我刚刚卸载它,它会在我遇到麻烦的时候安装它,并且从那以后有2天10013免费开发。因为我认为它将它的钩子深深地绑在网络堆栈中,所以它也是有意义的。

如果他们回来会继续更新......