一个有关Socket的问题(急!急!急!急!)(200分)

  • 主题发起人 主题发起人 www
  • 开始时间 开始时间
W

www

Unregistered / Unconfirmed
GUEST, unregistred user!
我最近写了一段winsocket通信的程序,可是经常出现
asynchronous socket error 10054的错误,请问为什么会出现这样的
提示呢??怎样解决??

急!
 
对方终止了连接
 
如何解决呢?
 
不知是在哪一端报错?serversocket应该在onclientdisconnect中
加入serversocket.socket.connections[x].close;
cliectsocket应该在onerror中加入
showmessage('Error connecting to : ' + Server);
ErrorCode := 0;
 
该错误,是系统告诉你缓冲区将满,是你发送得太快,因此,你在发送时,应该检查是套接字可读,若可写,再发送,以免数据丢失。

检查套接字可写的函数如下 :

bool checksocketwriteable(int sockethandle,int checktimes)
{
//checktimes is millseconds.

fd_set fdset;
struct timeval tv;
tv.tv_sec=(checktimes /1000);
tv.tv_usec=(checktimes %1000);

FD_ZERO(&fdset);
FD_SET(sockethandle,&fdset);
if (select(sockethandle+1,NULL,&fdset,NULL,&tv)>0)
return true;
else
return false;


}


如果你觉得可以的话,请不要忘了加分。
 
多人接受答案了。
 
后退
顶部