python客户端和perl服务器:打包和解包字节以发送/接收
python_client.pypython客户端和perl服务器:打包和解包字节以发送/接收,python,perl,sockets,Python,Perl,Sockets,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($lin
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";
我得到这个错误:参数“\0\0\0C”在perl\u 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中没有正确地解包
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";
有什么建议吗?我已经改变了
sub ntohl {
unpack("I", $_[0]);
}
及
@Саа27不,只有蟒蛇