ClientSocket怎么控制连接超时时间(100分)

  • 主题发起人 主题发起人 freezing
  • 开始时间 开始时间
有属可以设置,不过你用INDY吧, Delphi6已经附带了,
非常好用,
 
Indy好像没有超时设定吧,只有Powersock有
不过Powersock没有OnError事件,虽然帮助上
说有,但就是不能用
 
看一下winsock.connect()的帮助,看有没
 
自己写个子类,加个时间控制,不难,我就是那么解决的。
 
怎么搞?用定时器?一段时间没连上就删除这个Socket吗?
 
该free就free,该disconnect就disconnect呗,这个由你定
 
int timeout=1000;
setsockopt(sockRaw,SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,
sizeof(timeout));

http://www.csdn.net/expert/topic/406/406688.shtm
 
谁能给个具体的例子阿?
 
var
TimeOut: Integer
begin
TimeOut := 1000; //一秒
winsock.setsockopt(ClientSocket1.Socket.SocketHandle, SOL_SOCKET, SO_SNDTIMEO, &TimeOut, SizoeOf(TimeOut));
//最好做之前,先保存一个它的default value(getsockopt),完了后,再设回来。
end;
 
哦,看错,我那个是Send TimeOut值,而你所说是connect Timeout,sorry,
你看一下SO_SNDTIMEO之外还有什么参数,有的话,用那个参数。再不然帮不了你了。:(
 
后退
顶部