MFC根据TCP协议打包数据然后发送,其中的打包问题 [size=13px]写了一个客户端程序,现在可以建立连接并发送CString类的数据成功了。但是要把要发送的数据根据协议打包,发给设备让其识别。我现在应该怎么做?要将数据转换为十六进制和包头(HEAD)合并再发送么?首先问我这个思路是不是正确的?如果是正确的我应该怎么转换?组合的话是不是用CString中的+就可以了?[/size] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 按照你的协议要求定义数据结构,如果是数值,转换成网络字节序。你可以参考这里有socket程序,实现了很多网络协议:http://download.csdn.net/detail/geoff08zhang/4571358 组合的话是不是用CString中的+就可以了?这个倒是可以! CString中的+字符串 包我不懂等大神把! 网络通信最好不要用CString用char 更好些 CString? 你知道它有固定长度么?数据结构算是白学了. 哈?CString我就了解个大概而已,用起来方便简单。。 用BYTE数组吧 把结构单字节对齐放到 byte数组里边 接收方也必须单字节对齐 最好不要用CString类 用char[]取代 具体问一下哈,就是根据协议的话,包头是01 01 01 00 06 00,包身是一个CString类的字符串。我是要把CString的字符串转换为十六进制,然后跟包头组包,再发送么?而且有人提到的网络字节序,我直接使用Send函数就能成功发送数据了,并没有进行字节序的转换。是因为我的主机序跟网络字节序是一致的么? 找到答案了,声明一个buf临时变量,将包头copy进去,再将CString类数据转换为char *,再copy到临时变量中。这样包即组装好。然后将buf发送即可。包头使用结构体存储。 MFC 异常捕获 VS2005类属性页里面的“事件”、“消息”、“重写”不见了!! 明天回家过年,散分庆祝下!祝愿大家新年快乐! 急!!使用CTreeCtrl造成CPU使用率100% 请教:木马清除工具及杀毒软件的原理,有了解的吗? 地图的放大缩小问题,在线等。。。。。。 编辑图像的问题,着急啊,帮帮我... 报表是个什么概念啊? 关于查找和替换的问题,急 请问如何用GDI或者GDI+绘制动态流动的线段或者直线 mfc 窗口创建失败。 ocx对外接口怎么实现这个变参的传送?
http://download.csdn.net/detail/geoff08zhang/4571358
这个倒是可以!
用char 更好些
而且有人提到的网络字节序,我直接使用Send函数就能成功发送数据了,并没有进行字节序的转换。是因为我的主机序跟网络字节序是一致的么?
找到答案了,声明一个buf临时变量,将包头copy进去,再将CString类数据转换为char *,再copy到临时变量中。这样包即组装好。然后将buf发送即可。
包头使用结构体存储。