Socket.Select返回错误"尝试对非套接字的操作"

Dav*_*fer 8 c# sockets networking

当使用经验证仅包含Socket对象的列表调用Socket.Select时,我有时会收到错误An operation was attempted on something that is not a socket.我找不到发生的模式.

Socket.Select(readList, writeList, null, timeOut > 0 ? timeOut : 0);
Run Code Online (Sandbox Code Playgroud)

Dav*_*fer 8

事实证明插座是关闭的.这只是因为一个封闭的套接字而导致.NET生成的一个非常愚蠢的错误.

  • 这不是一个安全问题吗?套接字类看似在封闭的句柄上进行本机调用!这是一个手柄回收攻击. (3认同)