Advertisement

C++ socket编程: 三种方式传输不同数据类型

阅读量:

在socket通信过程中,通常传输的数据类型为char型,那么如何实现我们所需数据类型的传输呢?

  1. 结构体;2. Json序列化;3. 定义一个class。

  2. 结构体

相较于其他方式,这种方法较为简单。参考网络上的示例:

假设需要传输的结构体如下:

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)

还没有任何评论哟~