Sponsored Content
Top Forums Programming Debugging IO::Socket Not Connecting Post 302428737 by nwboy74 on Thursday 10th of June 2010 07:09:27 PM
Old 06-10-2010
Debugging IO::Socket Not Connecting

I'm using perl to connect to a port on a unix box from a windows machine. The unix box is located in a remote office and I'm able to connect just fine from my desktop at work across the network. But if I try to remote to another windows machine at the same location as the unix box and try to connect to the port, I get no connection.

Code:
use IO::Socket;
my $sock = new IO::Socket::INET(
   'PeerAddr' => 'xx.xx.xx.xx',
   'PeerPort' => 26637,
   'Proto' => 'tcp',
);
if ($sock) {
   print "Connection established\n";
} else {
   print "Could not connect!\n";
}

For the PeerAddr, I've tried all variations of the address. Is there some way to get an error code from the failed constructor? I have no idea why it failed (can't find the host, port not accepting connections, etc). Anything else I should try?
 

10 More Discussions You Might Find Interesting

1. Programming

Socket Programming socket

Hello, I actually try to make client-server program. I'm using SCO OpenServer Release 5.0.0 and when I try to compile my code (by TELNET) I've got this error : I'm just using this simple code : and I get the same error if I use : If someone can help me, Thanks (2 Replies)
Discussion started by: soshell
2 Replies

2. Shell Programming and Scripting

Regarding Debugging

Hi, If we want to debug a shell script, then set -vx has to be included in the begining of the script. Just i want to know what purpose -vx is used. Thanks in advace Sarwan (2 Replies)
Discussion started by: sarwan
2 Replies

3. Programming

Problem Connecting to Socket

Can anyone help? I'm trying to write a program which will write to a socket. I can get the server to run, but always get an error when I try to connect. It gives me an error at the "connect" command. It's probably a simple error, but I can't seem to find it. #include <sys/socket.h>... (6 Replies)
Discussion started by: Stevhp
6 Replies

4. Solaris

debugging

when I tried to debug my application i got the following. gdb -v GNU gdb 6.6 file is in C and Xmotiff Languages (gdb) attach 25499 Attaching to process 25499 Retry #1: Retry #2: Retry #3: Retry #4: 0xfea40b68 in ?? () (gdb) where #0 0xfea40b68 in ?? () (0 Replies)
Discussion started by: satish@123
0 Replies

5. UNIX for Advanced & Expert Users

connect problem for sctp socket (ipv6 socket) - Runtime fail Invalid Arguments

Hi, I was porting ipv4 application to ipv6; i was done with TCP transports. Now i am facing problem with SCTp transport at runtime. To test SCTP transport I am using following server and client socket programs. Server program runs fine, but client program fails giving Invalid Arguments for... (0 Replies)
Discussion started by: chandrutiptur
0 Replies

6. Programming

which socket should socket option on be set

Hi all, On the server side, one socket is used for listening, the others are used for communicating with the client. My question is: if i want to set option for socket, which socket should be set on? If either can be set, what's the different? Again, what's the different if set option... (1 Reply)
Discussion started by: blademan100
1 Replies

7. Programming

socket function to read a webpage (socket.h)

Why does this socket function only read the first 1440 chars of the stream. Why not the whole stream ? I checked it with gdm and valgrind and everything seems correct... #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include... (3 Replies)
Discussion started by: cyler
3 Replies

8. Programming

Error with socket operation on non-socket

Dear Experts, i am compiling my code in suse 4.1 which is compiling fine, but at runtime it is showing me for socket programming error no 88 as i searched in errno.h it is telling me socket operation on non socket, what is the meaning of this , how to deal with this error , please... (1 Reply)
Discussion started by: vin_pll
1 Replies

9. IP Networking

Clarification - Setting socket options at the same time when socket is listening

I need clarification on whether it is okay to set socket options on a listening socket simultaneously when it is being used in an accept() call? Following is the scenario:- -- Task 1 - is executing in a loop - polling a listen socket, lets call it 'fd', (whose file descriptor is global)... (2 Replies)
Discussion started by: jake24
2 Replies

10. Programming

c++ debugging

hey i have a problem with a switch case in program and the debugger is messy has hell ( we use normal VI and gdb in our schoool to make it more diffiacult) any way i have a problom where for some unknown reason the debugger just skips a switch statment as if it wasent even there the rest... (2 Replies)
Discussion started by: gotenxds
2 Replies
Net::Server::Proto(3)					User Contributed Perl Documentation				     Net::Server::Proto(3)

NAME
Net::Server::Proto - Net::Server Protocol compatibility layer SYNOPSIS
# Net::Server::Proto and its accompianying modules are not # intended to be used outside the scope of Net::Server. # That being said, here is how you use them. This is # only intended for anybody wishing to extend the # protocols to include some other set (ie maybe a # database connection protocol) use Net::Server::Proto; my $sock = Net::Server::Proto->object( $default_host, # host to use if none found in port $port, # port to connect to $default_proto, # proto to use if none found in port $server_obj, # Net::Server object ); ### Net::Server::Proto will attempt to interface with ### sub modules named simillar to Net::Server::Proto::TCP ### Individual sub modules will be loaded by ### Net::Server::Proto as they are needed. use Net::Server::Proto::TCP; # can be TCP/UDP/UNIX/etc ### Return an object which is a sub class of IO::Socket ### At this point the object is not connected. ### The method can gather any other information that it ### needs from the server object. my $sock = Net::Server::Proto::TCP->object( $default_host, # host to use if none found in port $port, # port to connect to $server_obj, # Net::Server object ); ### Log that a connection is about to occur. ### Use the facilities of the passed Net::Server object. $sock->log_connect( $server ); ### Actually bind to port or socket file. This ### is typically done by calling the configure method. $sock->connect(); ### Allow for rebinding to an already open fileno. ### Typically will just do an fdopen. $sock->reconnect(); ### Return a unique identifying string for this sock that ### can be used when reconnecting. my $str = $sock->hup_string(); ### Return the proto that is being used by this module. my $proto = $sock->NS_proto(); DESCRIPTION
Net::Server::Proto is an intermediate module which returns IO::Socket style objects blessed into its own set of classes (ie Net::Server::Proto::TCP, Net::Server::Proto::UNIX). Only three or four protocols come bundled with Net::Server. TCP, UDP, UNIX, and eventually SSL. TCP is an implementation of SOCK_STREAM across an INET socket. UDP is an implementation of SOCK_DGRAM across an INET socket. UNIX uses a unix style socket file and lets the user choose between SOCK_STREAM and SOCK_DGRAM (the default is SOCK_STREAM). SSL is actually just a layer on top of TCP. The protocol that is passed to Net::Server can be the name of another module which contains the protocol bindings. If a protocol of MyServer::MyTCP was passed, the socket would be blessed into that class. If Net::Server::Proto::TCP was passed, it would get that class. If a bareword, such as tcp, udp, unix or ssl, is passed, the word is uppercased, and post pended to "Net::Server::Proto::" (ie tcp = Net::Server::Proto::TCP). METHODS
Protocol names used by the Net::Server::Proto should be sub classes of IO::Socket. These classes should also contain, as a minimum, the following methods: object Return an object which is a sub class of IO::Socket At this point the object is not connected. The method can gather any other information that it needs from the server object. Arguments are default_host, port, and a Net::Server style server object. log_connect Log that a connection is about to occur. Use the facilities of the passed Net::Server object. This should be an informative string explaining which properties are being used. connect Actually bind to port or socket file. This is typically done internally by calling the configure method of the IO::Socket super class. reconnect Allow for rebinding to an already open fileno. Typically will just do an fdopen using the IO::Socket super class. hup_string Return a unique identifying string for this sock that can be used when reconnecting. This is done to allow information including the file descriptor of the open sockets to be passed via %ENV during an exec. This string should always be the same based upon the configuration parameters. NS_proto Net::Server protocol. Return the protocol that is being used by this module. This does not have to be a registered or known protocol. show Similar to log_connect, but simply shows a listing of which properties were found. Can be used at any time. PORT
The port is the most important argument passed to the sub module classes and to Net::Server::Proto itself. For tcp, udp, and ssl style ports, the form is generally host:port/protocol, host|port|protocol, host/port, or port. For unix the form is generally socket_file|type|unix or socket_file. You can see what Net::Server::Proto parsed out by looking at the logs to see what log_connect said. You could also include a post_bind_hook similar to the following to debug what happened: sub post_bind_hook { my $self = shift; foreach my $sock ( @{ $self->{server}->{sock} } ){ $self->log(2,$sock->show); } } Rather than try to explain further, please look at the following examples: # example 1 ################################### $port = "20203"; $def_host = "default_domain.com"; $def_proto = "tcp"; $obj = Net::Server::Proto->object($def_host,$port,$def_proto); # ref = Net::Server::Proto::TCP # NS_host = default_domain.com # NS_port = 20203 # NS_proto = TCP # example 2 ################################### $port = "someother.com:20203"; $def_host = "default_domain.com"; $def_proto = "tcp"; $obj = Net::Server::Proto->object($def_host,$port,$def_proto); # ref = Net::Server::Proto::TCP # NS_host = someother.com # NS_port = 20203 # NS_proto = TCP # example 3 ################################### $port = "someother.com:20203/udp"; $def_host = "default_domain.com"; $def_proto = "tcp"; $obj = Net::Server::Proto->object($def_host,$port,$def_proto); # ref = Net::Server::Proto::UDP # NS_host = someother.com # NS_port = 20203 # NS_proto = UDP # example 4 ################################### $port = "someother.com:20203/Net::Server::Proto::UDP"; $def_host = "default_domain.com"; $def_proto = "TCP"; $obj = Net::Server::Proto->object($def_host,$port,$def_proto); # ref = Net::Server::Proto::UDP # NS_host = someother.com # NS_port = 20203 # NS_proto = UDP # example 5 ################################### $port = "someother.com:20203/MyObject::TCP"; $def_host = "default_domain.com"; $def_proto = "tcp"; $obj = Net::Server::Proto->object($def_host,$port,$def_proto); # ref = MyObject::TCP # NS_host = someother.com # NS_port = 20203 # NS_proto = TCP (depends on MyObject::TCP module) # example 6 ################################### $port = "/tmp/mysock.file|unix"; $def_host = "default_domain.com"; $def_proto = "tcp"; $obj = Net::Server::Proto->object($def_host,$port,$def_proto); # ref = Net::Server::Proto::UNIX # NS_host = undef # NS_port = undef # NS_unix_path = /tmp/mysock.file # NS_unix_type = SOCK_STREAM # NS_proto = UNIX # example 7 ################################### $port = "/tmp/mysock.file|".SOCK_DGRAM."|unix"; $def_host = ""; $def_proto = "tcp"; $obj = Net::Server::Proto->object($def_host,$port,$def_proto); # ref = Net::Server::Proto::UNIX # NS_host = undef # NS_port = undef # NS_unix_path = /tmp/mysock.file # NS_unix_type = SOCK_DGRAM # NS_proto = UNIX # example 8 ################################### $port = "/tmp/mysock.file|".SOCK_DGRAM."|unix"; $def_host = ""; $def_proto = "UNIX"; $obj = Net::Server::Proto->object($def_host,$port,$def_proto); # ref = Net::Server::Proto::UNIX # NS_host = undef # NS_port = undef # NS_unix_path = /tmp/mysock.file # NS_unix_type = SOCK_DGRAM # NS_proto = UNIX LICENCE
Distributed under the same terms as Net::Server perl v5.12.1 2007-02-03 Net::Server::Proto(3)
All times are GMT -4. The time now is 06:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy