只有在阻塞方式下才能设置超时,
好像是SetTimeOut,是一个过程,有2个参数
好像是SetTimeOut,是一个过程,有2个参数
解决方案 »
- 在webBrowser中用OleVariant取值,如何判断没有取到?
- 全局变量的简单问题!急
- access表转换成dbf格式和excel格式,请高手帮我,时间很急啊!
- 简单问题。ado中如何动态创建、删除sql表?
- 各位仁兄,关于adodataset
- 如何在一个事件中调用另一个事件?例如在一个Edit输入结束后,按回车键,会发生与点击Edit后面Button同样的事件。
- 大家帮帮忙
- ***寻求以下正版软件的报价,请大家支持!***
- [急急急!!!各位大侠救命!!!]关于dataset只读不可修改的问题???
- 哪里有flash控件下载?
- 奇怪的问题,请知道的解决:TADOConnection(Delphi)连接Oracle数据库,我通过TADOConnection.GetTableNames取数据库中的表名,运行时错误
- 一个关于打包的问题,希望得到解决!
可以设置的 if TWinSocketStream.waitfordata(1000) then
begin
end;
可以设置的 if TWinSocketStream.waitfordata(1000) then
begin
end;
是读写数据的超时,但怎样控制clientsocket连接超时呢。也就是说,在规定的时间内连接不成功就放弃连接。因为Clientsoket.open是要费时间的。
connect server
send data timeout
recv data timeoutwindows不支持connect timeout,linux支持
不过可以:在连接时,先进行WaitForSingleObject(ClientSocket1.Socket.SocketHandle, TimeOut);不过得在一个线程中做send/recv timeout
var
timeout: Integer;
begin
timeout := 1000; // 1 s
//发送数据timeout
setsockopt(ClientSocket1.Socket.SocketHandle, SOL_SOCKET, SO_SNDTIMEO, PChar(@timeout), sizeof(timeout));
//接收数据timeout
setsockopt(ClientSocket1.Socket.SocketHandle, SOL_SOCKET, SO_RCVTIMEO, PChar(@timeout), sizeof(timeout));end;