这是个老问题了,UDP关于CString的传输?

myanbu2008 2012-02-26 08:05:40
数据传输都是字节流的,那怎么传输字符串类型的呢?用char或者TCHAR?
我的结构体是这样的

struct XXXXX
{
int code;
char name[];
.
.
.
};

这个在传输结构体的时候怎么办呢? 是不是传输的时候要附加控制信息比如name的实际长度等;

谁有比较好的例子不妨共享一下吧,谢了哦

我要的是字符串结构体的传输,单独的字符串这个传输起来很简单,如果把结构体转换成单个传输的模式也可以不过还是想看看高手们前辈们怎么处理的?
...全文
140 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiuzhoulh 2012-02-29
  • 打赏
  • 举报
回复
5楼的方法可行,自己定义一个buffer[length], 把你要发送的内容拷贝进去,然后直接发送就OK了
oyljerry 2012-02-28
  • 打赏
  • 举报
回复
通过数组等来进行memcpy拷贝
可以自己根据字符串长度设置一个长度的参数,这样接收方就知道从多少长度来获取对应的数据
用户 昵称 2012-02-26
  • 打赏
  • 举报
回复
网络上传结构体,一般都将变化多的放在后面,且尽量将小成员合并成整数大小
比如
char a
char b
short c
int len
char buf[ xxx ]

a, b, c能拼成一个int,这样就在内存中也是连续的,对传输以及自动维护还是维护都方便。
Eleven 2012-02-26
  • 打赏
  • 举报
回复
结构体中如果不含有指针变量的话,可以直接将结构体send发送出去,如果有的话,可以取出结构体变量的值序列化以后再发送出去。
shn521 2012-02-26
  • 打赏
  • 举报
回复
貌似网络传输的一般都是char类型,如果传单个结构体的话估计就得在数据头上附加长度等信息了
shn521 2012-02-26
  • 打赏
  • 举报
回复
如果结构体内部占的字节数都一样的话,我把N个结构体都写入缓存,然后N*结构体大小+结构体数据发送出去,然后接收端接收,BYTE *temp=new BYTE[lFileSize(数据大小)];
rData *rdata=(rData*)temp;
int sum=lFileSize/结构体大小;
rdata[0]-----rdata[sum-1];就是每个接收到的结构体
我之前是这么做的

18,363

社区成员

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

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