C socket 发送接收结构体

目的:C/S可以相互发送/接收各种结构体方法:采用socket的UDP方式,请帮我写两个函数template<classT>BOOLRecvData(T&t)//实现接收... 目的:C/S可以相互发送/接收各种结构体
方法:采用socket的UDP方式,请帮我写两个函数
template<class T>
BOOL RecvData(T& t)//实现接收某种结构体类型的数据保存在t中
BOOL SendData(T t)//实现发送某种结构体数据t
要求:1.采用模板,因为发送/接收的数据可能是各种不同类型的结构体
2.在发送函数SendData中添加某种标记(例如:在发送字符串前加2位标识位记录是哪个结构体),以便在接收函数RecvData中能识别是哪个结构体并还原出来
3.要源代码,请别给我一大堆理论的东西,小弟编这两个函数好几天了,头都疼了,还没搞出来,请各位高手帮帮忙,在此谢过!!!
4.请试一下是否可行,不要拿过来编都编译不出来,小弟用的是VC6.0,或者将完整源代码发到我信箱中 iamjb@126.com 好的一定追加分!!!
————————
这里先假设几个结构体:
struct UserBasicInfo
{ int iNumber;
char cName[20];
bool bSex;};
struct UserScore
{char cName[20];
unsigned uChinese;
unsigned uMath;
unsigned uEnglish;};
展开
 我来答
伊·梵beec
2008-11-27 · TA获得超过2162个赞
知道大有可为答主
回答量:1897
采纳率:0%
帮助的人:1410万
展开全部
1。不需要,发送/接收都只需要地址和长度
2。
前面加个头
struct head
{
int length;/*这里表示本次应该发送/接收的数据的长度*/
int type;/*这里表示后面跟的结构体类型*/
//..
}

发送就不说了
接收的时候先收一个int,得到长度,然后收完数据
然后根据type选择合适的指针类型,比如:
switch(type)
{
case 0:/*处理结构体A*/
struct A *p=(struct A *)buf;
//p->..
}
3。代码最好自己写
4。~~~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式