in reply to Ping from remote host which is a Windows server

Hi

I have given the Pseudo code to you.

Please try to apply poll or select on the socket file handle and do the stuff. It would be easy for you. I have not given the actcal code which I have.

NOTE: If you want to write anything on the client socket pass the client socket handle as I have passed in the pseudo code. otherwise no need to pass that.

#!/usr/bin/perl use IO::Socket; use Net::Ping; $sock = new IO::Socket::INET (LocalHost => 'xxx.xxx.xxx.xxx', LocalPor +t => 9321, Proto => 'tcp', Listen => 5, Reuse => 1 ); die "Socket could not be created. Reason: $!" unless $sock; $reach = Net::Ping->new($ > ? "tcp": "icmp"); (defined $reach) or die "Couldn't create Net::Ping object: $!\n"; while (1) { do a poll or select on Server socket Id which is '$sock'; whenever there is a new connection 'send_response' send_response ( $new_sock ); } sub send_response { my ( $new_sock ) = shift; if $reach->ping("$host") { print "host is reachable" } else { print "host is unreachable"; } return 1; }

"Keep pouring your ideas"

Replies are listed 'Best First'.
Re^2: Ping from remote host which is a Windows server
by rockmountain (Sexton) on Jun 13, 2006 at 13:23 UTC
    Thanks Ashok, just one more query, in your algorithm there is no need to determine the IP address and port number of clients cheers Rock
      Hi

      Yes, that is true. Because when you get the connection from client you will get the IP address to where you have to ping willl be a message in the socket. you have to read the IP address which comes as a message, then from your server script you have to ping for the IP, then you print the appropriate message on the client.

      Server <- client | reads IP from Client. Next process :- Ping the IP. Next process :- Server -> client | whether IP is pingable or not.

      "Keep pouring your ideas"