我正在尝试在套接字上发送一个标量值,这是我从nfreeze可以存储的。 一步一步:
$serializedHash = nfreeze \%hash;
$sendSocket->send($serializedHash);
只要标量$serializedHash
不大于1024byte,这样就可以了。因为我在另一侧有一个只能接收最大数据的套接字。长度为1024byte。
我也无法将$serializedHash
存储在文件中,然后使用sysread
和syswrite
进行处理。
我不想要的是每个插槽发送每一行,因为我的Hash有超过200万个条目。哈希元素由\n
分隔,因此我尝试使用split
函数,但后来我有一个包含200万个条目的数组。
如何通过UDP套接字在包中发送数据?
答案 0 :(得分:3)
您可能会按块处理序列化哈希,例如:
while ($serializedHash =~ /(.{1,1024})/sg) {
my $chunk = $1;
# sending $chunk
}