首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-08-13 
这是个老问题了,UDP关于CString的传输?数据传输都是字节流的,那怎么传输字符串类型的呢?用char或者TCHAR?

这是个老问题了,UDP关于CString的传输?
数据传输都是字节流的,那怎么传输字符串类型的呢?用char或者TCHAR?
我的结构体是这样的

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

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

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

我要的是字符串结构体的传输,单独的字符串这个传输起来很简单,如果把结构体转换成单个传输的模式也可以不过还是想看看高手们前辈们怎么处理的?

[解决办法]
如果结构体内部占的字节数都一样的话,我把N个结构体都写入缓存,然后N*结构体大小+结构体数据发送出去,然后接收端接收,BYTE *temp=new BYTE[lFileSize(数据大小)];
rData *rdata=(rData*)temp;
int sum=lFileSize/结构体大小;
rdata[0]-----rdata[sum-1];就是每个接收到的结构体
我之前是这么做的
[解决办法]
结构体中如果不含有指针变量的话,可以直接将结构体send发送出去,如果有的话,可以取出结构体变量的值序列化以后再发送出去。
[解决办法]
网络上传结构体,一般都将变化多的放在后面,且尽量将小成员合并成整数大小
比如
char a
char b
short c
int len
char buf[ xxx ]

a, b, c能拼成一个int,这样就在内存中也是连续的,对传输以及自动维护还是维护都方便。

[解决办法]
通过数组等来进行memcpy拷贝
可以自己根据字符串长度设置一个长度的参数,这样接收方就知道从多少长度来获取对应的数据
[解决办法]
5楼的方法可行,自己定义一个buffer[length], 把你要发送的内容拷贝进去,然后直接发送就OK了

热点排行