[英]python client and perl server: packing and unpacking bytes to send/receive
python_client.py
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";
我收到此錯誤:
perl_server.pl中的Argument "\\0\\0\\0C" isn't numeric in pack
我不認為我在perl_server.pl中正確解壓
有什么建議么?
我換了ntohl
sub ntohl {
unpack("I", $_[0]);
}
和
sock.sendall(struct.pack('I', length))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.