gpt4 book ai didi

c++ - TCP 使用 htonl 和 htons 进行文件传输

转载 作者:行者123 更新时间:2023-11-30 18:55:51 24 4
gpt4 key购买 nike

我现在正在用c++做一个文件传输程序。它有效,但唯一的问题是我使用 getline 而不是 read()。所以该程序似乎只处理文本文件。我读入文件并存储在 char*[] 中。所以我想知道当我将其更改为二进制形式的 read() 并希望通过套接字发送它时,我是否需要在传递它之前对 char*[] 进行转换(htons、htonl 等)?我在某处读到,如果它是 char*,则不需要这样做。我存储文件信息的方式是否有误?

总结一下: 如何存储从二进制打开的文件中读取的信息? 如果它存储在 char*[] 中,我是否需要对其使用 htons... ,以及如何使用? 我一次会通过套接字发送多少字节?

非常感谢大家的帮助!

最佳答案

不,您不需要转换文件数据,按原样发送/读取。

但是,您应该做的是将文件大小分配给变量,使用 htonl() 转换它,并在发送文件数据之前发送它。然后接收方可以读取文件大小,使用 ntohl() 进行转换,并知道要读取文件数据的字节数,以便知道何时停止读取以及是否收到完整文件.

关于c++ - TCP 使用 htonl 和 htons 进行文件传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26285516/

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