通过套接字发送哈希表的内容

时间:2012-09-27 00:49:59

标签: c sockets tcp hashtable

使用带有套接字的TCP服务器/客户端设置,我如何将哈希表的内容从服务器发送到客户端?

我正在寻找的格式就像IP address: content

2 个答案:

答案 0 :(得分:0)

您是否需要以相同的顺序重建另一端的表格?如果是这样,您需要发送阵列位置。如果没有,您可以按照您喜欢的任何顺序发送所有字符串,客户端可以插入。

最简单的方法是发送文本模式,尽管这通常会在客户端进行更多的工作。就个人而言,我会发送表格大小以及期望的字符串数量,并且每行发送一个条目:

117 5
puppy
kitten
cub
joey
duckling

如果我也需要阵列位置,那么在文本中发送它们也没有错(但你可能更喜欢二进制):

117 5
8 puppy
42 kitten
57 cub
101 joey
105 duckling

答案 1 :(得分:0)

我建议您使用msgpack二进制序列化格式打包哈希表,通过套接字发送并在另一端解压缩。

e.g。在Ruby中(这只是一个例子 - many other languages上有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