在阻塞模式下,如何设置连接Socket服务器(connect)的超时时间

在阻塞模式下,怎么设置连接Socket服务器(connect)的超时时间?
如题,indy控件是可以设置连接服务器的超时时间的,不知它是怎么实现。
我现在应用是网络断开后进知自动连接,不过Connect连接时间太长,网络断开时就像死机一样,不能动,不知各位有什么好办法,不想用非阻塞方式。

------解决方案--------------------
var
TimeOut:integer;
begin
//设置超时
TimeOut:=5000;
setsockopt(hSocket,SOL_SOCKET,SO_RCVTIMEO,@TimeOut, SizeOf(TimeOut));
.........
end;
------解决方案--------------------
在select设置时间试试?
------解决方案--------------------
Connect(....);//还是一样要等很长时间才返回,大约在十几到二十秒,我希望是半秒到一秒返回。 

没办法,应该是网络状态不是太好吧。

用UDP成不?