Al 16/04/13 12:20, En/na Michael Schnell ha escrit: > On 04/16/2013 11:26 AM, Xiangrong Fang wrote: >> How can I set the connection and read/write timeout when using socket >> in free pascal? > I seem to remember that synapse can do this.
Only in svn and it does it this way if FConnectionTimeout > 0 then begin // connect in non-blocking mode b := NonBlockMode; NonBlockMode := true; SockCheck(synsock.Connect(FSocket, Sin)); if (FLastError = WSAEINPROGRESS) OR (FLastError = WSAEWOULDBLOCK) then if not CanWrite(FConnectionTimeout) then FLastError := WSAETIMEDOUT; NonBlockMode := b; end else SockCheck(synsock.Connect(FSocket, Sin)); NonBlockMode in turn uses fpIoCtl with the FIONBIO parameter, WSAEINPROGRESS=EsysEINPROGRESS, WSAEWOULDBLOCK=EsysEWOULDBLOCK and CanWrite does an fpSelect Bye -- Luca _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal