尝试通过套接字发送消息失败,并出现WinSock错误10038.大约40秒后,从同一个套接字成功接收消息,随后send()也在同一个套接字中成功。在Windows Server 2003中已经见过这种行为。这是WinSock和Windows Server 2003的任何已知行为吗?
答案 0 :(得分:4)
Winsock错误10038表示“尝试对非套接字的操作进行操作”。
找到有关错误代码的信息的小技巧(对各种Windows错误代码都很有用):
您的申请书是用哪种语言撰写的?如果它是C / C ++,那么你是否使用了无效的套接字句柄?
答案 1 :(得分:1)
非常感谢a_mole检查分层winsock提供程序的想法。我们的PC和TimesTen数据库存在问题。当我们尝试设置和ODBC客户端DSN时,我们得到10038错误。在检查受影响的PC的netsh输出时,我们发现他们安装了Wave Systems的Embassy Trust Suite。显然戴尔在他们的一些PC上预装了这个。无论如何,在卸载这个软件时,问题已经解决了。
再次感谢
娄
答案 2 :(得分:0)
不是平台问题,我可以保证。最有可能的是,用于访问套接字句柄的任何变量都不是线程安全的,并且在创建实际套接字之前在send()调用中使用。
另一个可能的原因是存在分层的winsock提供程序。 cmd提示符下的“netsh winsock show”将显示已安装的提供程序,您可以尝试删除任何非Microsoft软件。