in reply to Re^2: UDP server/client Connection refused
in thread UDP server/client Connection refused

I believe you derived your code from http://www.thegeekstuff.com/2010/07/perl-tcp-udp-socket-programming/.

I modified/simplified the code, and this set works fine for me:
SERVER:

#!/usr/bin/perl #udpserver.pl use strict; use warnings; use IO::Socket::INET; $| = 1; # flush after every write my $socket = new IO::Socket::INET ( LocalPort => '5000', Proto => 'udp', ) or die "ERROR in Socket Creation : $!\n"; while(1){ $socket->recv(my $recieved_data,1024); my $peer_address = $socket->peerhost(); my $peer_port = $socket->peerport(); print "\n($peer_address , $peer_port) said : $recieved_data"; #send the data to the client at which the read/write operations do +ne recently. $socket->send ("Server received '$recieved_data'. This is the SERV +ER response\n"); } $socket->close(); # We will never get here , but good practice to clos +e
CLIENT:
#!/usr/bin/perl #udpclient.pl use strict; use warnings; use IO::Socket::INET; $| = 1; # flush after every write my $socket = new IO::Socket::INET ( PeerAddr => '127.0.0.1:5000', Proto => 'udp' ) or die "ERROR in Socket Creation : $!\n"; $socket->send("data from client"); $socket->recv(my $data,1024); print "Data received from socket : $data\n"; $socket->close();
The BROADCAST is a way to send data to all listeners on the subnet. To do that, you use a special broadcast IP addressto SEND data.

I'm not sure I understood your question in this regard.

        "You're only given one little spark of madness. You mustn't lose it."         - Robin Williams

Replies are listed 'Best First'.
Re^4: UDP server/client Connection refused
by thanos1983 (Parson) on Sep 29, 2014 at 23:47 UTC

    Hello again NetWallah,

    That is true I derived the code from this website, just to create a sample of test code. I am working with a bigger part of code SNTP Client/Server V2 RFC. I am still looking for ways of improving it, and I was looking for your answer. How to specify the PeerAddr and LocalPort so I can make it connect with my public IP not only with my local.

    I think I understood what you said about:

    The BROADCAST is a way to send data to all listeners on the subnet. To do that, you use a special broadcast IP addressto SEND data.

    More or less this an answer that covers my question. I was not able to figure out why and how we could use PeerAddr  => inet_ntoa(INADDR_BROADCAST) but thanks to you I have an idea now.

    Again thank you for your time and effort, you helped me a lot with my problem.

    Seeking for Perl wisdom...on the process of learning...not there...yet!
      If you notice the SERVER code I posted in the previous post,I only specified LocalPort. Since LocalAddr/LocalHost was NOT specified, that socket would bind to all available IP addresses, internal and external. So - it is listening on all interfaces. I have tested it for both cases, and it works fine.

      For the CLIENT code, the PeerAddr determines which IP the datagram is sent to. You can send it to a local (127.0.0.1), external (normal IP), or broadcast address.

      Hope this helps.

              "You're only given one little spark of madness. You mustn't lose it."         - Robin Williams