1

ストレージから nfreeze で取得したソケット経由でスカラー値を送信しようとしています。ステップバイステップ:

  1. スカラーを取得します $serializedHash = nfreeze \%hash;
  2. ソケット経由で送信したい$sendSocket->send($serializedHash);

$serializedHashスカラーが 1024 バイトを超えない限り、これは正常に機能します。私は反対側に最大でのみデータを受信できるソケットを持っているからです。1024バイトの長さ。$serializedHashまた、ファイルに保存してから and で処理することsysreadもできません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 に答える