ソケットを使用した TCP サーバー/クライアントのセットアップを使用して、ハッシュ テーブルの内容のようなものをサーバーからクライアントに送信するにはどうすればよいですか?
私が探しているフォーマットはのようなものIP address: content
です。
ハッシュ テーブルをmsgpackバイナリ シリアル化形式でパックし、ソケットを介して送信し、反対側でアンパックすることをお勧めします。
たとえば、Ruby の場合 (これは単なる例です。msgpack は他の多くの言語で利用できます!)、次のようになります。
require "msgpack"
> msg = {"192.0.2.1"=>"foo", "192.0.2.2"=>"bar"}.to_msgpack
=> "\x82\xA9192.0.2.1\xA3foo\xA9192.0.2.2\xA3bar"
> msg.bytesize
=> 29
反対側のテーブルを同じ順序で再構築する必要がありますか? その場合は、配列の位置を送信する必要があります。そうでない場合は、すべての文字列を好きな順序で送信するだけで、クライアントが挿入できます。
最も簡単な方法は、テキスト モードで送信することですが、クライアント エンドでの作業が少し増えることがよくあります。個人的には、テーブル サイズと予想される文字列の数を送信し、1 行に 1 つのエントリを送信します。
117 5
puppy
kitten
cub
joey
duckling
また、配列の位置も必要な場合は、それらをテキストで送信しても問題ありません (ただし、バイナリを好む場合があります)。
117 5
8 puppy
42 kitten
57 cub
101 joey
105 duckling