哪位帮我解释下这个错误 WSAGetLastError() returned 10055, No buffer space available

hisi 2003-11-27 09:29:36
偶在做一个邮件自动提醒的程序,因为要不停地连接POP服务器检查。
程序运行一段时间后就会报以上错误。。

哪位好心人帮我解释一下错误产生的原因,以及解决的方法。。
...全文
201 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hisi 2003-11-28
  • 打赏
  • 举报
回复
谢谢,请问有什么办法可以查看到系统缓冲区的当前的状态??
mahatma_cn 2003-11-27
  • 打赏
  • 举报
回复
没有缓冲区可用了,程序编制有错误!
xiaohyy 2003-11-27
  • 打赏
  • 举报
回复
不是因为接收数据包的空间太小,用户定义的缓冲区读取系统缓冲区。

检查是否有系统缓冲区未释放 或同时接收的udp包过多。。
wyh2002 2003-11-27
  • 打赏
  • 举报
回复
由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作。
zhucde 2003-11-27
  • 打赏
  • 举报
回复
是不是你接收数据包的空间太小?
char buf[255];
Client.Receive(buf,255);
是不是类似于这样的空间太小?
hisi 2003-11-27
  • 打赏
  • 举报
回复
自个UP
photoman 2003-11-27
  • 打赏
  • 举报
回复
投递接收或者发送操作太慢了
ZHENG017 2003-11-27
  • 打赏
  • 举报
回复
运行netstat -a看一下,是不是有n多time_wait状态。
如果是在你的closesocket之前强制关闭。如下:
static struct linger lig;
lig.l_onoff=1;
lig.l_linger=0;
static int iLen=sizeof(struct linger);

setsockopt(iActiveSocket,SOL_SOCKET,SO_LINGER,(char *)&lig,iLen);
closesocket(iActiveSocket);
xiaohyy 2003-11-27
  • 打赏
  • 举报
回复
当用recv把数据读出或数据被发送到线上,就被系统自动清空了。通常不用自己管理
hisi 2003-11-27
  • 打赏
  • 举报
回复
谢谢楼上诸位,
再请问如何能清空本程序所占用的系统缓冲区呢?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧