我怎样才能发送一个大的二进制命令到 Perl 中的套接字?

How can I send a big binary command to a socket in Perl?

我已经成功地与我的服务器建立了 TCP 连接。服务器只能理解二进制命令。我在发送二进制数时遇到问题。例如,如果我想以二进制形式向服务器发送 0xCA00018108010202020202020266,则会出现溢出错误。必须一次发送整个号码(一个应用层数据包)。如何在一个应用层数据包中将这个原始二进制数发送到服务器?不幸的是,我不得不用 Perl 编写它,即使我能够在 Python 中很快完成它。

我的 TCP 连接正常,使用 "use IO::Socket::INET"。我试过 "print $socket" 和 "$socket->send"

二进制数是一个命令。服务器上的应用程序 运行 必须在一个应用程序层数据包中接收整个二进制命令。我不能改变这个。

作为 112 位大端二进制补码无符号整数:

print($socket "\xCA\x00\x01\x81\x08\x01\x02\x02\x02\x02\x02\x02\x02\x66");

print($socket pack("H*", "CA00018108010202020202020266"));