2016-09-22 3 views
2

python_client.pyPython-Client und Perl-Server: Packen und Entpacken Bytes zum Senden/Empfangen

def send_one_message(sock, data): 
    length = len(data) 
    sock.sendall(struct.pack('!I', length)) 
    sock.sendall(data) 

perl_server.pl

sub ntohl { 
    unpack("I", pack("N", $_[0])); 
} 

my $line = ""; 
$client_socket->recv($line, 4); 
my $line_length = ntohl($line); 
print "expected to receive $line_length bytes\n"; 

$client_socket->recv($line, $line_length); 
print "$line\n"; 

ich diesen Fehler:
Argument "\0\0\0C" isn't numeric in pack in perl_server.pl

Ich glaube nicht, dass ich richtig entpacke in perl_server.pl

Irgendwelche Vorschläge?

+0

@ Сухой27 nein, nur Python – ealeon

Antwort

0

habe ich geändert ntohl

sub ntohl { 
    unpack("I", $_[0]); 
} 

und

sock.sendall(struct.pack('I', length)) 
Verwandte Themen