To find out if a nonblocking socket has connected I use the following piece of 
code:

With windows that works, but with linux I get alwas the result that the socket 
is writable.

function is_writable_socket( sck : integer ) : boolean;
var
  fds : tfdset;
  tv  : timeval;
begin
  {$ifdef linux}   fpfd_zero( fds ); fpfd_set( sck , fds ); {$endif}
  {$ifdef windows}   fd_zero( fds );   fd_set( sck , fds ); {$endif}
  tv.tv_sec  := 0;
  tv.tv_usec := 0;
  //                 socket+1 , read , write , except , timeout
  {$ifdef linux}
  result := fpselect( sck + 1 , nil  , @fds  , nil    , @tv ) > 0;
  {$else}
  result :=   select( sck + 1 , nil  , @fds  , nil    , @tv ) > 0;
  {$endif}
end;
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to