Thanks for the replies.
I tried the suggested changes, which didn't help. Adding a print statement after the "Accept" loop shows the script will listen, but not accept a connection.
I have verified that the server listens on port SCTP/5002 using a "netstat -an". I'm also learning/writing/testing a C program in parallel, and C can open the same port and responds to the SCTP requests.
#!/opt/ActivePerl-5.10/bin/perl -U
use Socket;
$port = 5002;
$iaddr = inet_aton('localhost');
$paddr = sockaddr_in($port, $iaddr);
$proto = getprotobyname('sctp');
socket( Server, AF_INET, SOCK_STREAM, $proto )|| die "Socket Failed: $
+!";
setsockopt(Server, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)) || die "se
+tsockopt: $!";
bind(Server, $paddr) || die "Socket Bind Failed: $!";
listen(Server, SOMAXCON) || die "Socket Listen Failed: $!";
print "SERVER started on SCTP port $port\n";
while (accept CONNECTION, Server)
{ print "Connection Accepted\n";
select CONNECTION; $| = 1; select STDOUT;
print "Client connected at ", scalar(localtime), "\n";
print CONNECTION "You're connected to the server!\n";
while (<CONNECTION>) {
print "Client says: $_\n";
print CONNECTION $_;
}
close CONNECTION;
print "Client disconnected\n";
}
|