V
Vespasian
Why does the following code correctly sets up a server
my $port = 9850;
my $proto = getprotobyname('tcp');
socket(SERVER, PF_INET, SOCK_STREAM, $proto) or die "socket:
$!";
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1) or die
"setsock: $!";
my $paddr = sockaddr_in($port, INADDR_ANY);
bind(SERVER, $paddr) or die "bind: $!";
listen(SERVER, SOMAXCONN) or die "listen: $!";
print "SERVER started on port $port\n";
# accepting a connection
my $client_addr;
while ($client_addr = accept(CLIENT, SERVER))
while the following does not i.e. it dies at the die statement,
my $port = 9850;
my $proto = getprotobyname('tcp');
my $sock = new IO::Socket::INET(
LocalHost => 'localhost',
LocalPort => 9850,
Proto => 'tcp',
Listen => SOMAXCONN,
Type => SOCK_STREAM,
Reuse => 1);
$sock or die "no socket :$!";
print "SERVER started on port $port\n";
# accepting a connection
my $client_sock = $sock->accept();
TIA,
Ves
my $port = 9850;
my $proto = getprotobyname('tcp');
socket(SERVER, PF_INET, SOCK_STREAM, $proto) or die "socket:
$!";
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1) or die
"setsock: $!";
my $paddr = sockaddr_in($port, INADDR_ANY);
bind(SERVER, $paddr) or die "bind: $!";
listen(SERVER, SOMAXCONN) or die "listen: $!";
print "SERVER started on port $port\n";
# accepting a connection
my $client_addr;
while ($client_addr = accept(CLIENT, SERVER))
while the following does not i.e. it dies at the die statement,
my $port = 9850;
my $proto = getprotobyname('tcp');
my $sock = new IO::Socket::INET(
LocalHost => 'localhost',
LocalPort => 9850,
Proto => 'tcp',
Listen => SOMAXCONN,
Type => SOCK_STREAM,
Reuse => 1);
$sock or die "no socket :$!";
print "SERVER started on port $port\n";
# accepting a connection
my $client_sock = $sock->accept();
TIA,
Ves