Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Trying to use a socket to monitor an Ethernet port

by hohumbgdl2003 (Initiate)
on Aug 03, 2006 at 00:09 UTC ( #565354=perlquestion: print w/replies, xml ) Need Help??
hohumbgdl2003 has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I'm a first time perl user looking for some help. I'm trying to communicate from my PC to a PLC on an ethernet card. I run my script to open a socket (the PLC is constantly talking) and it sits there doing nothing. I'm running a program that monitors the Ethernet port to see if it is talking and there is nothing. I can do this using HyperTerminal and it works fine and I see the communication between the two. I'm sure there is something simple missing. :O(
use IO::Socket; $sock = new IO::Socket::INET ( PeerAddr => '', PeerPort => '64511', Proto => 'tcp', Listen => SOMAXCONN, Reuse => 1, ); die "Could not create socket: $!\n" unless $sock; print $sock $new_sock = $sock->accept(); while(<$new_sock>) { print "!99200test@@"; } close($sock);

Replies are listed 'Best First'.
Re: Trying to use a socket to monitor an Ethernet port
by ikegami (Pope) on Aug 03, 2006 at 00:25 UTC

    The problem is that you're specifying a PeerAddr (client socket) and Listen (server socket). Drop Listen and accept.

    use IO::Socket::INET (); my $sock = IO::Socket::INET->new( Proto => 'tcp', PeerAddr => '', PeerPort => '64511', ) or die "Unable to create socket: $!\n"; print while <$sock>;

    By the way, when on PerlMonks, please put your code, messages, etc inside of <c>...</c> tags. Please edit your post to spare a janitor the task.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://565354]
Approved by BrowserUk
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (2)
As of 2018-02-19 02:25 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (257 votes). Check out past polls.