# 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; }