C++: Windows Socket Error 10013

C++: Windows Socket Error 10013

本文关键字:Error 10013 Socket Windows C++      更新时间:2023-10-16

突然,我的电脑不允许我绑定插座。它昨晚还在工作,当我写了几个小时的代码后去测试一个功能时,没有任何东西可以绑定。

其他事实:

  • 同样的代码在我的其他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)
      {

I have try:

  • 禁用我的Windows防火墙(建议作为常见修复)
  • 禁用Windows保护程序
  • 以管理员身份运行应用
  • 重启
  • 禁用/启用我的网络驱动
  • 重命名有问题的应用程序(如果防火墙被设置为禁止)
  • 恢复到应用程序的已知良好版本
  • 尝试我写的其他一些已知的好的网络应用程序(它们也失败了10013)
  • 在同一区域尝试不同端口
  • 将我的网络类型从"public"更改为"home"

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

我很确定我昨晚安装的唯一一个应用程序是Kerbal Space Program,我无法想象它会破坏我的网络驱动程序。

回答编辑:我的新理论是NetBalancer,因为我刚刚卸载了它,应该在我开始遇到问题的时候安装它,并且从那时起已经有2天的10013免费开发。因为我认为它将钩子深深地绑在了网络堆栈中,所以它也是有意义的。

如果他们回来,我们会继续更新这个…

相关文章: