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