c - 浮点缓冲区转换为 unsigned char* 在套接字发送时丢失数据

标签 c sockets pointers casting network-programming

是否有更好的方法通过套接字发送 float 据? 下面是发送数据的实现。

static float theOUTPUT[THE_FLOAT_DATA_BUFFER_SIZE];
int size = 2048;
int tb = 0;
int numbytes = 0;
int cs = 256;
unsigned char* buf = (unsigned char*)theOUTPUT;
while(tb < size) {
    numbytes = send(sock, buf, cs, 0);
    printf("bytes sent: %i\n", numbytes);
    tb+=numbytes;
    buf+=numbytes;
    if(tb >= size) {
        break;
    }
}

最佳答案

在此代码中,不能保证 sizesizeof(theOUTPUT) 匹配。如果较少,那么您将丢失数据。

关于c - 浮点缓冲区转换为 unsigned char* 在套接字发送时丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4999178/

相关文章:

Python Socket 编程(TCP 与 UDP)

c - 双指针 vs 单指针

C - 当函数内部分配内存时,谁负责内存分配?

c - 共享库中的 gdb 断点不起作用

javascript - socket.io发出返回相同的值

python - python客户端和perl服务器: packing and unpacking bytes to send/receive

c++ - 指针初始化覆盖值

c++ - 试图将一个点返回到一个二维字符数组

c - 以下代码是否违反严格别名?

c - 使用 while(getchar()! ='\n' ) 我清空标准输入,但我必须按下 Enter 键