Bis*_*Das 2 c sockets floating-point client
我正在使用TCP/IP套接字编程.我有一个浮点值存储在我的服务器代码中的变量ret_val中,我想发送给等待接收它的客户端.
我该怎么做?
如果您知道客户端和服务器都是相同的平台等,您可以简单地使用sizeof(float)来确定缓冲区大小并从浮动地址中复制那么多字节.
float number = 123.45;
send(sockfd, &number, sizeof(float),0);
Run Code Online (Sandbox Code Playgroud)
只要您的客户端/服务器是不同的平台/不同的语言等,您就必须开始担心如何对浮动进行可移植编码.但是对于一个简单的方法,上面的工作正常.
float f = ...;
size_t float_size = sizeof(float);
const char* buffer = (const char *) &f;
send(mySocket, buffer, float_size, 0);
Run Code Online (Sandbox Code Playgroud)
如果服务器和客户端使用相同的平台,此代码将正常工作.如果平台不同,则必须明确协商消息大小和字节顺序.