Chapter 6. Handling many sockets at once using select() 6.5. Blocking vs. non-blocking sockets So far in this chapter, you've seen that select() can be used to detect when data is available to read from a socket. However, there are times when its useful to be able to call send(), recv(), connect(), accept(), etc without having to wait for the result. For example, let's say that you're writing a we