C++:Windows 套接字错误 10013

标签 c++ sockets winsock

突然之间,我的 PC 停止让我绑定(bind)到套接字。它昨晚还在工作,当我在编码几个小时后去测试一个功能时,没有任何绑定(bind)。

其他事实:

  • 相同的代码适用于我的其他 PC,因此它显然是我的主要开发机器所独有的东西。
  • 绑定(bind)到 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)”更改为“家庭”

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

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

最佳答案

答案编辑:我的新理论是 NetBalancer,因为我刚刚卸载了它,我会在我开始遇到问题时安装它,并且从那时起已经进行了 2 天的 10013-free 开发。因为我假设它将它的钩子(Hook)与网络堆栈联系得相当深,所以它也是有道理的。

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

关于C++:Windows 套接字错误 10013,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17123380/

相关文章:

javascript - Ratchet Websocket Apache2 SSL 无法连接到 PHP websocket

c++ - 将常量整数转换为值* LLVM

c++ - 使用正则表达式解析字符串

c++ - 如何在 visual studio 2015 构建结束时复制文件

python - 使用python socket搭建ftp服务器

c# - System.Net.Sockets 发送与 stdcall :send

c++ - 获取硬盘盘符

multithreading - winsock 2. 同时发送的线程安全。 TCP

c++ - (C++/winsock) 封装替代结构

c++ - 在 C++ 中接受基于线程表现不同的套接字包括