h3x has asked for the wisdom of the Perl Monks concerning the following question:

Hello all follwing is the perl scrit.Which tries to create a socket.But whenever I run this progrem I am getting error like bCould not create socket: Connection refused.I think this statement is causing this problrm IO::Socket::INET.I think soket creataion is failure.Below is the program that cause this problem .I am running this script on linux machine 2.6.18 kernel and perl vesrion is v5.8.8 .Any help will be appreciate
#!/usr/bin/perl -w use strict; use lib "$ENV{CTI_BASE}/arches/lib"; use TestClass; use Getopt::Std; use IO::Socket::INET; use MfwTemplate; #Inside of MfwTemplate.pm are the default $cmdopts and @usage paramete +rs. #If other than the defaults are desired then enter those values here. #testSetUpAndExecute(\&execute_test,$cmdopts,\@usage); testSetUpAndExecute(\&execute_test); # you shouldn't have to change anything above this line, unless you're + adding more command line options # put your new test here sub execute_test { my ($test,%opts) = @_; my $status = "Pass"; my $sdpHeader = pack("CCCCN",0x30,1,1,1,23); my $sdpCmd = pack("CCCCnN",1,0,0x11,0x40,0,13); my $sdpData = pack("CNC8",0,64,1,2,3,4,5,6,7,8); my @header = unpack("CCCCN",$sdpHeader); printf("SDPHEADER: boardCab:%02x fragId:%02x fragTotal:%02x seqNum:%02 +x totalCount:%08x\n", $header[0],$header[1],$header[2],$header[3],$header[4]); my @cmd = unpack("CCCCnN",$sdpCmd); printf("SDPCMD: index:%02x modResp:%02x opEndSt:%02x status:%04x dataC +ount:%08x\n", $cmd[0],$cmd[2],$cmd[3],$cmd[4],$cmd[5]); my @d = unpack("CNC8",$sdpData); printf("SDPDATA: chain:%02x bitCount:%08x\n", $d[0],$d[1]); printf("%02x %02x %02x %02x %02x %02x %02x %02x\n", $d[2],$d[3],$d[4],$d[5],$d[6],$d[7],$d[8],$d[9]); #Here i am not able to createing soket . my $sock_out = new IO::Socket::INET (PeerAddr => 'st04a', PeerPort => 5050, Proto => 'tcp',Type => SOCK_STREAM ); die "Could not create socket: $!\n" unless $sock_out; print $sock_out "$sdpHeader"; $sock_out->flush(); }

Replies are listed 'Best First'.
Re: Could not create socket: Connection refused in perl
by jethro (Monsignor) on Sep 18, 2008 at 03:09 UTC

    This code tries to open a connection to port 5050 of a machine called st04a. The error message says it can't get a connection, so you might test that:

    First try "ping st04a" on the command line. If st04a answers then that isn't the problem. Otherwise the name is wrong, your nameserver doesn't know st04a in your network or st04a is down

    Now you should check whether there is a server behind port 5050. If "telnet st04a 5050" returns "Connection refused" then you have to restart whatever server process is listening on port 5050 of machine st04a.

Re: Could not create socket: Connection refused in perl
by zentara (Cardinal) on Sep 18, 2008 at 12:25 UTC
    You might also try putting
    Reuse=>1,
    in your IO::Socket options. Without that, there may be a delay in clearing the port and you would get a no connect error after the first connect.

    I'm not really a human, but I play one on earth Remember How Lucky You Are