gpt4 book ai didi

c++ - 通过套接字发送二进制文件

转载 作者:行者123 更新时间:2023-11-28 08:19:21 25 4
gpt4 key购买 nike

我试图通过 C 中的套接字将二进制文件发送到嵌入式平台,但是当我在发送后运行它时,它只会给我段错误(通过 ftp 发送工作正常,但速度很慢)。
在同一系统中发送二进制文件工作正常(嵌入式是小端,所以我不认为它的端问题)。
可能是什么问题?该程序是 mft.cpp

最佳答案

您假设每次 read 都返回您要读取的字节数。那是不正确的。您应该始终检查 read 返回值,看看您是否获得了所需的字节数。

这也意味着您可以将发送循环重写为:

int bytesLeft = file_length;
char buf[1024]; //no need to reallocate it in the loop
while(bytesLeft > 0)
{
int to_read = 1024;
if(bytesLeft < to_read)
to_read = bytesLeft
int bytesRead = read(new_sock_id, buf, to_read);
if(error("reading file", false)) continue;
write(file, buf, bytesRead);
if(error("writing file", false)) continue;
bytesLeft -= bytesRead ;
}

关于c++ - 通过套接字发送二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6535304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com