MFC根据TCP协议打包数据然后发送,其中的打包问题

Sunny_Lee0901 2013-01-23 10:43:49
[size=13px]写了一个客户端程序,现在可以建立连接并发送CString类的数据成功了。但是要把要发送的数据根据协议打包,发给设备让其识别。我现在应该怎么做?要将数据转换为十六进制和包头(HEAD)合并再发送么?首先问我这个思路是不是正确的?如果是正确的我应该怎么转换?组合的话是不是用CString中的+就可以了?[/size]
...全文
304 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunny_Lee0901 2013-01-30
  • 打赏
  • 举报
回复
找到答案了,声明一个buf临时变量,将包头copy进去,再将CString类数据转换为char *,再copy到临时变量中。这样包即组装好。然后将buf发送即可。 包头使用结构体存储。
Sunny_Lee0901 2013-01-28
  • 打赏
  • 举报
回复
具体问一下哈,就是根据协议的话,包头是01 01 01 00 06 00,包身是一个CString类的字符串。我是要把CString的字符串转换为十六进制,然后跟包头组包,再发送么? 而且有人提到的网络字节序,我直接使用Send函数就能成功发送数据了,并没有进行字节序的转换。是因为我的主机序跟网络字节序是一致的么?
zhangyihu321 2013-01-28
  • 打赏
  • 举报
回复
用BYTE数组吧 把结构单字节对齐放到 byte数组里边 接收方也必须单字节对齐 最好不要用CString类 用char[]取代
jimette 2013-01-23
  • 打赏
  • 举报
回复
组合的话是不是用CString中的+就可以了? 这个倒是可以!
ShengFei01 2013-01-23
  • 打赏
  • 举报
回复
按照你的协议要求定义数据结构,如果是数值,转换成网络字节序。你可以参考这里有socket程序,实现了很多网络协议: http://download.csdn.net/detail/geoff08zhang/4571358
Sunny_Lee0901 2013-01-23
  • 打赏
  • 举报
回复
引用 6 楼 dibotiger 的回复:
CString? 你知道它有固定长度么? 数据结构算是白学了.
哈?CString我就了解个大概而已,用起来方便简单。。
dibotiger 2013-01-23
  • 打赏
  • 举报
回复
CString? 你知道它有固定长度么? 数据结构算是白学了.
这不是鸭头 2013-01-23
  • 打赏
  • 举报
回复
网络通信最好不要用CString 用char 更好些
jimette 2013-01-23
  • 打赏
  • 举报
回复
CString中的+ 字符串 包我不懂 等大神把!
Sunny_Lee0901 2013-01-23
  • 打赏
  • 举报
回复
引用 2 楼 sha_jinhao 的回复:
组合的话是不是用CString中的+就可以了? 这个倒是可以!
是说将包头与数据组合么?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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