【问题标题】:Winsock - 10038 Error - Win2K3 Server - baffling behaviourWinsock - 10038 错误 - Win2K3 服务器 - 令人费解的行为
【发布时间】:2008-09-19 06:37:32
【问题描述】:

尝试通过套接字发送消息失败,出现 WinSock 错误 10038。大约 40 秒后,从同一套接字成功接收消息,随后 send() 在同一套接字中也成功。这种行为在 Windows Server 2003 中已经出现。这是 WinSock 和 Windows Server 2003 的任何已知行为吗?

【问题讨论】:

  • 您是否在其他平台(例如 XP)上尝试过?
  • 在您尝试访问套接字之前是否存在尚未完成的异步创建调用?

标签: windows-server-2003 winsock


【解决方案1】:

Winsock 错误 10038 表示“尝试对非套接字的操作进行操作”。

查找错误代码信息的小技巧(适用于各种 Windows 错误代码):

  • 打开命令提示符
  • 输入“net helpmsg 10038”

您的应用程序是用什么语言编写的?如果是 C/C++,会不会是你使用了无效的套接字句柄?

【讨论】:

    【解决方案2】:

    非常感谢 a_mole 检查分层的 Winsock 提供程序的想法。我们的一些 PC 和 TimesTen DB 存在问题。当我们尝试设置 ODBC 客户端 DSN 时,我们收到 10038 错误。在检查受影响 PC 的 netsh 输出时,我们发现它们安装了 Wave Systems 的 Embassy Trust Suite。显然戴尔在他们的一些个人电脑上预装了这个。反正卸载了这个软件,问题就解决了。

    再次感谢

    【讨论】:

      【解决方案3】:

      不是平台问题,我可以保证。最有可能的是,您用来访问套接字句柄的任何变量都不是线程安全的,而是在创建实际套接字之前在 send() 调用中使用。

      另一个可能的原因是存在分层的 Winsock 提供程序。 cmd 提示符下的“netsh winsock show”将显示已安装的提供程序,您可以尝试删除任何非 Microsoft 提供程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-30
        • 2013-12-25
        相关资源
        最近更新 更多