ClientSocket Open的问题
我假设不断的请求Open一个Server连接,这个Server是不存在的
那么,时间长了就会报
Windows socket error: 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。 (10055), on API 'connect'
这个错。
如何避免这个错的出现,使得Client可以继续尝试Open?
问题点数:20、回复次数:8Top
1 楼gzmhero(hihihi)回复于 2005-05-10 14:00:55 得分 4
procedure TTcpTrans.ClientSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
ErrorCode:=0;
Socket.Close;
m_ConnectStatus:=csError;
end;
Top
2 楼borgvardt(maximius)回复于 2005-05-10 15:20:16 得分 0
楼上估计没理解我的意思
我提到的错误是通过
try
ClientSocket1.Close;
ClientSocket1.Open;
inc(i);
Label1.Caption := Inttostr(i);
except
on e:exception do
begin
edit1.Text := e.Message;
end;
end;
补捉到的,而不是ErrorCode中体现的Top
3 楼borgvardt(maximius)回复于 2005-05-11 10:27:25 得分 0
顶一下,高手帮忙Top
4 楼llin528(00)回复于 2005-05-11 11:19:59 得分 4
这个问题好或,顶Top
5 楼jadeluo(秀峰)回复于 2005-05-11 12:45:55 得分 4
1. 使用二楼的代码来捕捉Socket的错误, 而不应该用楼主的try...except...end
2. 不要不断地请求Open一个Server连接, 而应该在前一次请求失败之后再一次请求Top
6 楼borgvardt(maximius)回复于 2005-05-13 15:51:02 得分 0
问楼上,如何判断请求失败?Top
7 楼jadeluo(秀峰)回复于 2005-05-14 08:22:56 得分 4
"请求失败"也就是出现ClientSocketError事件。
如果你的Client端想在断开连接之后还要尝试与Server连接的话,"请求失败"还应包括ClientSocketDisconnect事件。Top
8 楼DevilSniffer(戴眼睛的恶魔)回复于 2005-05-14 22:12:46 得分 4
在ClientSocketError事件里面添加 Socket.Close; 或许能避免你所说的情况!!Top
相关问题
- ClientSocket的Open()方法
- ClientSocket->Open()提示"Asynchronous socket error 10061"怎样捕获这个错误?
- ServerSocket/ClientSocket
- 請問clientsocket的active & open屬性有何分別?什麼情況下使用???
- clientsocket问题,急
- 关于serversocket ,clientsocket
- ServerSocket and ClientSocket的问题...
- delphi7的ClientSocket和ServerSocket
- 关于ServerSocket, ClientSocket的问题
- 关于ClientSocket错误捉




