C# Socket.Select返回错误";尝试对非套接字的对象执行操作;
调用Socket.Select时,如果列表被验证为仅包含套接字对象,我有时会收到错误C# Socket.Select返回错误";尝试对非套接字的对象执行操作;,c#,sockets,networking,C#,Sockets,Networking,调用Socket.Select时,如果列表被验证为仅包含套接字对象,我有时会收到错误尝试对非套接字的对象执行操作。我找不到发生的模式 Socket.Select(readList, writeList, null, timeOut > 0 ? timeOut : 0); 我在MSDN上搜索了一下,得到了一些点击率。见, 但是,我没有在WinSock中开发任何东西,但是在Unix上,执行Select的方式要求每次Select返回时都重置fd\u集。这可能同样适用于Select的WinSoc
尝试对非套接字的对象执行操作。我找不到发生的模式
Socket.Select(readList, writeList, null, timeOut > 0 ? timeOut : 0);
我在MSDN上搜索了一下,得到了一些点击率。见,
但是,我没有在WinSock中开发任何东西,但是在Unix上,执行Select
的方式要求每次Select
返回时都重置fd\u集。这可能同样适用于Select的WinSock实现。如果是这种情况,则您的readList、writeList
可能在Select
返回后损坏,从而导致您提到的错误。只是想一想。原来插座是关着的。这对于.NET来说是一个非常愚蠢的错误,只是因为一个关闭的套接字。当我的主机防火墙打开时,我遇到了这个问题。
由于我的公司规则,我无法添加或禁用防火墙。
因此,我在主机中添加了入站规则,以便在正常工作后进行通信。重新启动MYSQL服务可能会帮助您。好主意,但我们会在每次调用Select
之前重新初始化列表。不过谢谢。哦..而且MSDN链接也没有指向你可能遇到的情况?当然是环境问题,追踪KB文章。这是我本月看到的最酷的错误。一台计算机必须谦虚地承认它不知道发生了什么。我只是通过使用管理员权限运行程序解决了这个问题。这不是一个安全问题吗?套接字类似乎在一个闭合句柄上执行本机调用!这是一次把手回收攻击。我“突然”遇到这种情况,因为我与手持设备失去了联系,一个应用程序经常无法连接。我将掌上电脑重新“放置”在摇篮中,它再次被桌面“看到”,一切都很好——除了这次,当我收到“试图对非套接字的东西进行操作”错误时。关闭项目和VS 2008并重新打开使其消失。爸爸烧了瓦明特!我是说小精灵!这个问题与SQL Server无关。