
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;}; 展开
方法:采用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;}; 展开
1个回答
展开全部
1。不需要,发送/接收都只需要地址和长度
2。
前面加个头
struct head
{
int length;/*这里表示本次应该发送/接收的数据的长度*/
int type;/*这里表示后面跟的结构体类型*/
//..
}
发送就不说了
接收的时候先收一个int,得到长度,然后收完数据
然后根据type选择合适的指针类型,比如:
switch(type)
{
case 0:/*处理结构体A*/
struct A *p=(struct A *)buf;
//p->..
}
3。代码最好自己写
4。~~~
2。
前面加个头
struct head
{
int length;/*这里表示本次应该发送/接收的数据的长度*/
int type;/*这里表示后面跟的结构体类型*/
//..
}
发送就不说了
接收的时候先收一个int,得到长度,然后收完数据
然后根据type选择合适的指针类型,比如:
switch(type)
{
case 0:/*处理结构体A*/
struct A *p=(struct A *)buf;
//p->..
}
3。代码最好自己写
4。~~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询