首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于Socket通讯报错“由于系统缓冲区或队列已满,不能执行套接字上的操作”,怎么解决

2012-01-02 
关于Socket通讯报错“由于系统缓冲区或队列已满,不能执行套接字上的操作”,如何解决用断点跟踪发现问题均在

关于Socket通讯报错“由于系统缓冲区或队列已满,不能执行套接字上的操作”,如何解决
用断点跟踪发现问题均在发送线程与回调函数中。

我现在做法为,两个线程。采用一个client公共对象。每隔200秒收发一次。在发送函数中
try
{
do
{
  socket.beginsend();   //在这里总报这个错误
}
while()
}

privete   void   sendcallback()   //回调函数
{
xxxx
}

如何解决,哪里出了问题?注:我的连接是常连接。

[解决办法]
接收数据缓冲区
定义大一些
[解决办法]
创建的套接字太多??没有释放??
[解决办法]
由于系统缓冲区或队列已满,不能执行套接字上的操作。
//报这个错误就说明了SOCKET的缓冲区满了,也就是说你发送的字节数已经暂满了SOCKET缓冲区,而数据还没有被发出去,SOCKET缓冲区已经没有多的空间来发送或者接受数据了。
另外就是你程序里定义的缓冲大小跟SOCKET的缓冲大小无关。因为SOCKET本身是有缓冲区的。

热点排行