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))
关于python - python客户端和perl服务器: packing and unpacking bytes to send/receive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39631009/