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

Sunny_Lee0901 2013-01-23 10:43:49
[size=13px]写了一个客户端程序,现在可以建立连接并发送CString类的数据成功了。但是要把要发送的数据根据协议打包,发给设备让其识别。我现在应该怎么做?要将数据转换为十六进制和包头(HEAD)合并再发送么?首先问我这个思路是不是正确的?如果是正确的我应该怎么转换?组合的话是不是用CString中的+就可以了?[/size]
...全文
227 10 点赞 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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中的+就可以了? 这个倒是可以!
是说将包头与数据组合么?
  • 打赏
  • 举报
回复
相关推荐
发帖
网络编程
加入

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2013-01-23 10:43
社区公告
暂无公告