This creates a bidirectional stream very much like the pump stream used with a co-process.
Port numbers have some unfortunate restrictions.
Generally, on Unix systems, servers must have root privileges in order to listen on port numbers below 1024. It can have many such streams open simultaneously. The call to accept will block, awaiting a connection, if there is no pending connection request at the time of the call. In reality, sequential servers like the one above are typically used just to serialize access to some resource. They are a specialized exception to the default rule for servers, which is to accommodate as many clients at once as possible.