TClientSocket反复Open()不成功,为何会出现windows soket error

paihuai 2002-12-12 02:33:02
Windows socket error:由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作。(10055),on API'connect'

我用的版本是c++ builder 6,采用异步socket方式,反复连接不存在的Server时出现上述错误,希望各位高手多多指点!
...全文
247 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
RomanticProgrammer 2002-12-16
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1265/1265214.xml?temp=.6431848
RomanticProgrammer 2002-12-16
  • 打赏
  • 举报
回复
关注.我也碰到了这个问题.
yesry 2002-12-16
  • 打赏
  • 举报
回复
在 winsock2.h 定义:
#define WSAENOBUFS (WSABASEERR+55)
就是使用
int connect(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);
的时候出现了没有缓冲区的错误!
MSDN解释如下:
WSAENOBUFS No buffer space is available. The socket cannot be connected.


嘿嘿,知道如何给分了吧!
老顽童 2002-12-15
  • 打赏
  • 举报
回复
我想是OnError和连接成功表示一个连接结束
paihuai 2002-12-12
  • 打赏
  • 举报
回复
谢谢指点,但什么时候才是Open结束呢,OnError还是OnDisconnect或别的什么
pp616 2002-12-12
  • 打赏
  • 举报
回复
你那有很多client吧。如果是这样那你就必须少一点了。
耙子 2002-12-12
  • 打赏
  • 举报
回复
一个ClientSocket只能建立一个连接,你用了Open之后必须等到有结果了才能再次操作这个CilentSocket,
虽然是异步,你不能反复Open,有些时候建立一个连接需要很久,比如对方向得到你的主机名字的时候。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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