gpt4 book ai didi

c - 文件传输应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:12 26 4
gpt4 key购买 nike

大家好我想问一个关于使用套接字传输文件的问题。连接后我制作了客户端服务器代码我在客户端打开文件并开始读取数据并将该数据发送到服务器。服务器打开一个文件,从套接字读取数据并将其写入文件。它工作正常,但现在我希望我的文件名在两边都应该相同。为实现这一点,我已将文件名从客户端发送到服务器,但问题是服务器读取文件名并读取一些数据并生成错误的文件名。

例如

file name: myfile.txt
data in the file is : hello how are you.


server create the file name myfile.txthellow how

我怎样才能避免这种情况,因为我不知道服务器大小的文件名大小是多少谢谢

最佳答案

您必须将文件名的长度发送到服务器。有两种方法可以做到这一点:

  • 明确发送文件名的长度,然后将文件名发送到服务器。
  • 通过用特殊字符终止文件名来隐式发送长度,通常是 nul('\0' 或 0 字节)

此外,请注意单个 recv 调用可能会读取从另一端的多个 send 发送的数据:这就是 TCP 的工作方式(TCP 是面向流的协议(protocol)):不要假设在一个 send 命令中发送的数据将在一个 recv 中到达。一个 recv 可能从一个或多个 send 命令获取数据,而来自一个或多个 send 命令的数据可能在单个 中接收接收命令。 (你也可能得到“半个发送”)。

关于c - 文件传输应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8999412/

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