发送都是char类型的 可以定义一个结构体变量 结构体里面有float double类型的数据 struct person{ char name[20]; int age; float high; }; /*可在发送数据的地方对数据进行处理,将其转换成一个字符串进行传送,而在接受方定义相同的结构体对这个字符串进行解析即可。*/ //发送方代码如下: char temp[100]; //传送的字符串 struct person p1; //声明一个需要传送的结构体 p1.age = 10; p1.high = 1.80f; strcpy(p1.name,"zhangsan",sizeof(p1.name)); memset(temp,0,sizeof(temp)); //对该内存段进行清 0 memcpy(temp,&p1,sizeof(person)); //把这个结构体中的信息从内存中读入到字符串temp中 //接下来传送temp这个字符串就可以了 sendto(sock,temp,sizeof(person),0,(SOCKADDR*)&addSer,sizeof(SOCKADDR)); //这样这个结构体的信息就发送到addSer相应的套接字了 /*接收方代码如下: 同样需要定义字符串和相同的结构体对象*/ char temp[100]; //传送的字符串 struct person p2; //声明一个存放接收信息的结构体 memset(temp,0,sizeof(temp)); //清内存 //下面是接收字符串的代码 recvfrom(sock_listen,temp,sizeof(temp),0,(sockaddr*)&addCli,&len); //下面对字符串信息进行还原,将其变成我们的结构体数据 memcpy(&p2,temp,sizeof(person)); //解析过程,将字符串的内容写入到p2所在内存完成解析 //下面就可以对p2中的数据进行各种操作了,也完成了结构体数据的传送。