[ Team LiB ] Previous Section Next Section

25.4 Summary

Signal-driven I/O has the kernel notify us with the SIGIO signal when "something" happens on a socket.

  • With a connected TCP socket, numerous conditions can cause this notification, making this feature of little use.

  • With a listening TCP socket, this notification occurs when a new connection is ready to be accepted.

  • With UDP, this notification means either a datagram has arrived or an asynchronous error has arrived; in both cases, we call recvfrom.

We modified our UDP echo server to use signal-driven I/O, using a technique similar to that used by NTP: read a datagram as soon as possible after it arrives to obtain an accurate timestamp for its arrival and then queue it for later processing.

    [ Team LiB ] Previous Section Next Section