[PD-dev] socket gurus

d.lj jdl at xdv.org
Tue Mar 2 17:25:15 CET 2004


and man 7 socket

       It is possible to do non-blocking IO on sockets by setting  the  O_NON-
       BLOCK flag on a socket file descriptor using fcntl(2).  Then all opera-
       tions that would block will (usually)  return  with  EAGAIN  (operation
       should  be  retried  later);  connect(2) will return EINPROGRESS error.
       The user can then wait for various events via poll(2) or select(2).




[august]->[Re: [PD-dev]
socket
gurus]->[04-03-02 16:39]

 |
 |On Tue, 2 Mar 2004, Tom Schouten wrote:
 |> hi august,
 |> check man 2 connect:
 |>        ETIMEDOUT
 |>               Timeout  while attempting connection. The server may be too
 |>               busy to accept new connections. Note that
 |>               for IP sockets the timeout may be very long when syncookies
 |>               are enabled on the server.
 |> so you're better off using select, then you can set your own timeout.
 |> tom
 |
 |Tom,
 |
 |I don't even make it that far.  Connect() doesn't return anything!
 |I can't even get an error response.  And without a connection, select does
 |me no good.
 |
 |Doing a search, I saw some ppl using alarm and signal around the connect
 |call to kill it if it hangs.  This looks like a dirty hack though.  Any
 |comments?  code below.
 |
 |-august.
 |
 |
 |    signal (SIGALRM, connect_timed_out);
 |    alarm (CONNECT_TIME_OUT);
 |
 |    if(connect(sock,(struct sockadr *)& server,sizeof(server))<0)
 |    {
 | perror("connect");
 | exit(1);
 |    }
 |
 |    /**
 |     ** Just in case the other end crashes without closing
 |     ** and we hang on a write
 |     ** time out the whole program after a while
 |     **/
 |
 |    alarm (NORMAL_TIME_OUT);
 |    signal (SIGALRM, normal_time_out);
 |
 |
 |
 |
 |_______________________________________________
 |PD-dev mailing list
 |PD-dev at iem.at
 |http://iem.at/cgi-bin/mailman/listinfo/pd-dev
 |

-- 
i          x          d          U          ·          o          R          g
GPG-key at http://xdv.org/~jdl/jdl.pub.asc




More information about the Pd-dev mailing list