my $sock = IO::Socket::INET->new(PeerAddr => '127.0.0.1', PeerPort => '9090', Proto => 'tcp') or die("Couldn't connect: $!"); #### my $server = IO::Socket::INET->new( Proto => 'tcp', LocalPort => $PORT, Listen => 10, Reuse => 0) or die("$!"); #### # server sub write { my ($self, $string) = @_; my $server_socket = $self->{SERVER_SOCKET}; my $write_length = sprintf "%020d", length($string); syswrite $server_socket, $write_length, 20; print "Writing $write_length bits of data\n"; syswrite $server_socket, $string, $write_length; } # client sub read { my ($self, $param) = @_; my $sock = $self->get_socket(); my $read_length; my $buffer; sysread $sock, $read_length, 20; sysread $sock, $buffer, $read_length; my $buffer_length = length($buffer); $buffer_length == $read_length or die("Tried to read $read_length bits but only got $buffer_length bits\n"); return $buffer; } #### server ... Writing 00000000000000014848 bits of data client Tried to read 00000000000000014848 bits but only got 13140 bits