### Create the listening socket: $listen_socket = IO::Socket::INET-> new('Listen' => 5, 'LocalAddr' => $server_host, 'LocalPort' => $listen_port, 'Proto' => "TCP", ); # ... ### Handle login attempts: my $listen_bit = $listen_socket->fileno(); if (vec($r_vec, $listen_bit, 1) == 1) { print "Login attempt on listening socket...\n"; my $socket = $listen_socket->accept(); # ... } # ... ### Handle reading, and possible client dropout: $bytes_read = $socket->sysread($r_buf, _POSIX_PIPE_BUF, 0); # ... elsif ($bytes_read == 0) { do_socket_close_and_cleaup(); } # ...