LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Networking (https://www.linuxquestions.org/questions/linux-networking-3/)
-   -   Could not create socket: Connection refused in perl (https://www.linuxquestions.org/questions/linux-networking-3/could-not-create-socket-connection-refused-in-perl-670521/)

gauthamk 09-17-2008 09:19 AM

Could not create socket: Connection refused in perl
 
Hello all follwing is the perl scrit.Which tries to create a socket.But whenever I run this progrem I am getting error like [B]Could 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 appreciated .

#!/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 parameters.
#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:%02x 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 dataCount:%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();
}

TB0ne 09-17-2008 10:01 AM

Quote:

Originally Posted by gauthamk (Post 3283152)
Hello all follwing is the perl scrit.Which tries to create a socket.But whenever I run this progrem I am getting error like [B]Could 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 appreciated .

Is that port open and available?

immortaltechnique 09-17-2008 10:31 PM

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.

gauthamk 09-18-2008 10:18 AM

Could not create socket: Connection refused in per
 
Thanks u for u r reply.I checked to telnet as u said.telnet st04a 5050
But it could able to make the connection .Even checked and ensured that the port is free .Even whwn I tries to ping st04a .pininging is failing .

TB0ne 09-18-2008 10:52 AM

Quote:

Originally Posted by gauthamk (Post 3284648)
Thanks u for u r reply.I checked to telnet as u said.telnet st04a 5050
But it could able to make the connection .Even checked and ensured that the port is free .Even whwn I tries to ping st04a .pininging is failing .

Then the first thing you need to do, is to resolve your network issue(s) between your two hosts. Also, please try to write and spell clearly, it helps everyone understand what you're trying to say.

immortaltechnique 09-18-2008 11:46 AM

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.

gauthamk 09-25-2008 02:20 AM

Once again Thanks for u r reply.Hai I chaged the hsot address from st04a to st04a.fc.hp.com .I am able to ping and I am able to telnet to this site .As u said I also used Reuse=>.But still the socket creation is not happenning .Even I tried "telnet st04a.fc.hp.com 5050" This also fails.
U can check this statement.

my $sock_out = new IO::Socket::INET (PeerAddr => 'st04a.fc.hp.com',
PeerPort => '5050',
Proto => 'tcp',#Type => SOCK_STREAM
Reuse =>1
); die "Could not create socket: $!\n" unless $sock_out;


All times are GMT -5. The time now is 05:02 PM.