1

我试图通过套接字发送一个标量值,这是我从可存储的 nfreeze 获得的。一步步:

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

只要标量$serializedHash不大于 1024 字节,就可以正常工作。因为我在另一边有一个只能接收最大数据的套接字。长度为 1024 字节。我也不能存储$serializedHash在一个文件中,然后用sysreadand处理它syswrite

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

如何通过 UDP 套接字以包的形式发送数据?

4

1 回答 1

3

您可能会按块处理您的序列化哈希,如下所示:

while ($serializedHash =~ /(.{1,1024})/sg) {
  my $chunk = $1;
  # sending $chunk
}
于 2012-02-24T13:51:32.853 回答