代码之家  ›  专栏  ›  技术社区  ›  user65266

为什么我要在我的C服务中得到这个袜子例外?

  •  4
  • user65266  · 技术社区  · 16 年前

    我有一个服务负责从服务器读写。 读写是在不同的线程中完成的。

    读卡器线程一直处于活动状态,而写线程仅在消息写入服务器并收到响应时激活以发送消息并终止。

    服务运行4天,之后每当服务尝试从端口读取时,我都会不断收到此错误:

    System.net.Sockets.SocketException:无法对套接字执行操作,因为 系统缺少足够的缓冲空间或队列已满

    2 回复  |  直到 13 年前
        1
  •  6
  •   twk Mark Adler    16 年前

    当您快速建立大量传出连接并耗尽本地端口时,就会发生这种情况。您可以阅读“临时端口范围” here .

    或者,您可能只是插座用完了。确定你 close 在你用完它们之后。

        2
  •  0
  •   Steve Wranovsky    16 年前

    我还强烈建议您查看您的写线程,以及如何引用与套接字相关的资源。也就是说,您是否正在为使用套接字的任何网络流或其他对象调用Close/Dispose?如果您仍在为这个问题苦苦挣扎,那么写线程中的代码示例将非常有用。

    您还可能希望监视进程内存并通过任务管理器处理使用情况。