通过UDP发送数据包

时间:2012-02-24 13:37:37

标签: perl sockets udp send storable

我正在尝试在套接字上发送一个标量值,这是我从nfreeze可以存储的。 一步一步:

  1. 我得到了标量 $serializedHash = nfreeze \%hash;
  2. 我想通过套接字$sendSocket->send($serializedHash);
  3. 发送它

    只要标量$serializedHash不大于1024byte,这样就可以了。因为我在另一侧有一个只能接收最大数据的套接字。长度为1024byte。 我也无法将$serializedHash存储在文件中,然后使用sysreadsyswrite进行处理。

    我不想要的是每个插槽发送每一行,因为我的Hash有超过200万个条目。哈希元素由\n分隔,因此我尝试使用split函数,但后来我有一个包含200万个条目的数组。

    如何通过UDP套接字在包中发送数据?

1 个答案:

答案 0 :(得分:3)

您可能会按块处理序列化哈希,例如:

while ($serializedHash =~ /(.{1,1024})/sg) {
  my $chunk = $1;
  # sending $chunk
}