c语言,如何用socket将比如一个float 类型的数组a[3]={1,2,3,4}传出去?接收端又如何处理?
转成byte数组,然后socket直接send发送。接收端也是接收到byte数组得到原始数据,然后再转换回来
应该以文本串的格式传出去,而不是二进制格式传出去,因为存在大端和小端字节序的问题,具体请参考《unix网络编程》数据格式那一节的内容。
//接收端
char buf[2048] = { 0 }
float recv = NULL;
recv(sockfd, buf, sizeof(buf), 0);
recv = (float)buf;
3. 在发送/接收数据过程中, 是以数据流进行处理的, 所以无大小端字节序问题;
例:
float a[3]={1,2,3};
send(sock,(char*)a,sizeof(a),0);
float buffer[3]={0};
rec(soc,(char*)buffer,sizeof(buffer),0);