C++ socket编程: 三种方式传输不同数据类型
发布时间
阅读量:
阅读量
在socket通信过程中,通常传输的数据类型为char型,那么如何实现我们所需数据类型的传输呢?
-
结构体;2. Json序列化;3. 定义一个class。
-
结构体
相较于其他方式,这种方法较为简单。参考网络上的示例:
假设需要传输的结构体如下:
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)); //对内存区域进行清空操作
memcpy(temp,&p1,sizeof(person)); //将结构体中的信息复制到temp字符串中
//接下来即可发送temp这个字符串
sendto(sock,temp,sizeof(person),0,(SOCKADDR*)&addSer,sizeof(SOCKADD
全部评论 (0)
还没有任何评论哟~
