gpt4 book ai didi

C:通过套接字发送和接收文件

转载 作者:行者123 更新时间:2023-11-30 15:49:22 25 4
gpt4 key购买 nike

我正在尝试实现一个分布式 p2p 文件共享系统,其中对等方可以从其他对等方发送和下载文件。但是,我在下载文件并将其保存到目录时遇到一些问题。

这是我发送请求的文件的位置

while(!feof(requestedfile)) {
bytes_read = fread(buf, 1, sizeof(buf), requestedfile);
send(clientSock, buf, bytes_read, 0);

}

当我尝试下载时,我执行以下操作

while(recv(clientSock, currentLinePointer, 1, 0) != 0) {
currentLinePointer++;
}

我是 C 新手,但我知道我有 2 个问题

  1. 如何执行更高效的读取?如果我一次读取1024字节,那么在最后一 block 数据时,可能只填充了1024字节的一半。其他 512 个无意义字节是否会导致我的文件出现错误? (我知道当您尝试读取并保存末尾带有无意义字节的 jpg 时,图片会发生不好的情况)
  2. 现在我已经读取了该文件,如何保存该文件?说出对等请求“hello.jpg”。我的设置可以发送和读取该文件,但现在如何将该文件保存到请求的对等目录“PATH/Pictures/”

最佳答案

http://msdn.microsoft.com/en-us/library/windows/desktop/ms740121(v=vs.85).aspx

If no error occurs, recv returns the number of bytes received

您需要知道recv的返回值是什么,并且只将该数量的字节写入您的文件。

关于C:通过套接字发送和接收文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16365277/

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