It works with rc := fpSelect (sock+1,@FDS,nil,nil,5000);
I did not understand the description of the first argument in the docs, so I used the value from the sample, this was not a good idea.
For reference here is the source that works: Uses UnixType, BaseUnix, Sockets; procedure abort (reason:string); begin writeln (reason); halt; end; var sock: cint; ladr : SockAddr; radr : SockAddr; adrlen: tSockLen; msg : string[255]; FDS : Tfdset; rc : cint; begin sock := fpSocket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if sock = -1 then abort ('Error from fpSocket'); ladr.sin_family := AF_INET; ladr.sin_addr.s_addr := INADDR_ANY; ladr.sin_port := htons(2000); rc := fpBind (sock, @ladr, sizeof(ladr)); if rc <> 0 then abort ('Error from fpBind'); adrlen := sizeof(radr); Fpfd_zero (FDS); FpFd_set (sock,FDS); rc := fpSelect (sock+1,@FDS,nil,nil,5000); writeln (rc); if rc = -1 then abort ('Error from fpSelect'); if rc = 0 then abort ('timeout'); rc := fpRecvFrom (sock, @msg[1], 255, 0 {flags}, @radr, @adrlen); if rc = -1 then abort ('Error from FpRecv'); if rc > 255 then rc := 255; msg[0] := chr(rc); writeln (msg); end. And this is the sender: Uses UnixType, BaseUnix, Sockets; procedure abort (reason:string); begin writeln (reason); halt; end; var sock: cint; sadr: {TInet}SockAddr; dadr: {TInet}SockAddr; adrlen: tSockLen; msg : string; rc : cint; begin sock := fpSocket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if sock = -1 then abort ('Error from fpSocket'); sadr.sin_family := AF_INET; sadr.sin_addr.s_addr := INADDR_ANY; sadr.sin_port := 0; { auto-select } rc := fpBind (sock, @sadr, sizeof(sadr)); if rc <> 0 then abort ('Error from fpBind'); dadr.sin_family := AF_INET; dadr.sin_addr.s_bytes[1] := 127; dadr.sin_addr.s_bytes[2] := 0; dadr.sin_addr.s_bytes[2] := 0; dadr.sin_addr.s_bytes[2] := 1; dadr.sin_port := htons(2000); adrlen := sizeof(dadr); msg := 'hello, world!'; rc := fpSendTo (sock, @msg[1], length(msg), 0 {flags}, @dadr, adrlen); if rc = length(msg) then writeln ('ok'); end. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal