use strict; use IO::Socket; my $socket=IO::Socket::INET->new(LocalAddr => 'localhost', LocalPort => 2224, Proto => 'udp') or die "socket: $!"; while ((my $length=sysread($socket, my $buffer, 65536)) != 0) { die "sysread: $!" if (!defined($length)); # $buffer contains the received packet } #### use strict; use IO::Socket; my $socket=IO::Socket::INET->new(PeerAddr => 'localhost', PeerPort => 2224, Proto => 'udp') or die "socket: $!"; syswrite($socket, "Hello, there\n"); #### my $length; while (defined($length=sysread($socket, my $buffer, 65536)) && $length != 0) { ... } die "sysread: $!" if (!defined($length));