来几个朋友讨论下 这个string的方法

yize.link 2009-03-22 01:04:43
我准备做个套接字的程序。
发送数据我想用string 来储存。

但是我想发送的是多块模式的内容。
例如

请求字0x1姓名某某年龄20

这样的内容。也就是说
0x1xx20

这样的内容,我想到一个接受后拆分的方法 。就是在内容那里添加一个表达式。
例如: 0x12xx220 其中 0x1 后面的 2 的意思是 下一段字符串有2字节, 后面的2的意思是下端字符串有2字节。

例如 我接收到这样的一段数据后,首先读取:

前三位【固定位请求字。】
然后读取第四位来知道下一段字符串是多长的。以此类推。

可以分解出我要的数据。但是这样的效率是不是太慢了?

有更好的方法吗?
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuhan91133 2009-03-22
  • 打赏
  • 举报
回复
还是 char *比较好,string转来转去也许会出问题,操作起来也未必方便/
帅得不敢出门 2009-03-22
  • 打赏
  • 举报
回复
如果数据量大的话 似乎很浪费啊.
downmooner 2009-03-22
  • 打赏
  • 举报
回复
像tcp这种流数据,你肯定得先获得后面的应该接收多少才算一个完整的消息。
Wolf0403 2009-03-22
  • 打赏
  • 举报
回复
http://en.wikipedia.org/wiki/Type-length-value
ch1oE 2009-03-22
  • 打赏
  • 举报
回复
还是直接用char*吧,不然你转来转去,还不够麻烦的。
而且本身string的方法实现,在你这个特殊的应用里,未必高效。
ayw215 2009-03-22
  • 打赏
  • 举报
回复
同意ls的
不如用char*
qqwx_1986 2009-03-22
  • 打赏
  • 举报
回复
string不适合玩这个
  • 打赏
  • 举报
回复
楼主就不能发之前把string转成char *,然后再转回来,不省事吗。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧