IOCP应用中,用到WSABUF,但是wsabuf只支持char*类型。如何支持BYTE字节流?

yurilin 2011-07-08 08:56:57
在winsoc中WSABUF结构的buf是char*类型,这样不是变成只能字符串通讯了么。
客户端如果发了一个12345,只是需要一个4字节的BYTE,可是用CHAR*就5字节。
如何接受一块长度的字节,再考入内存解析呢。

本人新手,问的不专业,希望高人能明白我的问题。
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yurilin 的回复:]
各位大大,
客户端(非C++)发送一个字节流,比如协议是这样的

假设

包头(int类型,说明包内容长度)+协议号(4字节)+包内容

这样发过来的

可以解析么。
[/Quote]
可以,接收的时候先解析包头,然后根据包头中的信息接收后续的内容
luciferisnotsatan 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yurilin 的回复:]

各位大大,
客户端(非C++)发送一个字节流,比如协议是这样的

假设

包头(int类型,说明包内容长度)+协议号(4字节)+包内容

这样发过来的

可以解析么。
[/Quote]
可以,注意大小字节序就是了
luciferisnotsatan 2011-07-08
  • 打赏
  • 举报
回复
char*和BYTE*不都是一个字节么?编译过不了,强转一下就行了
yurilin 2011-07-08
  • 打赏
  • 举报
回复
各位大大,
客户端(非C++)发送一个字节流,比如协议是这样的

假设

包头(int类型,说明包内容长度)+协议号(4字节)+包内容

这样发过来的

可以解析么。
quwei197874 2011-07-08
  • 打赏
  • 举报
回复
BYTE就是unsigned char,转化一下就可以了
无趣 2011-07-08
  • 打赏
  • 举报
回复
内存结构是一样的,强转。char szBuf[32] = {0};BYTE* pBuf = (BYTE*)szBuf;
ndy_w 2011-07-08
  • 打赏
  • 举报
回复
char*和BYTE*可以强制转换。不过你的问题似乎是应用层协议没定义清楚

18,356

社区成员

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

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