接收文件

时间:2012-03-26 14:43:13

标签: c++ file-upload sendfile

我在接收文件时遇到问题。 有一个客户端发送文件和用C / C ++编写的服务器。

这是我完全使用netcat的简单代码:

std::ofstream file;
file.open("data.bin", std::ios::out | std::ios::binary);
assert(file.is_open());
char buffer[1024];
while (1) {
    std::cout << "Writing data..." << std::endl;
    ssize_t p = read(fd, buffer, sizeof(buffer));
    std::cout << "Print p " << p << std::endl;
    assert(p != -1);
    if (p == 0)
    {
        std::cout << "End of file." << std::endl;
        break;
    }
    std::cout << "Print buffer " << buffer << std::endl;
    file.write(buffer, p);
}
file.close();
}

但不是我的客户。 IF statemant p == 0似乎无法与客户端(用C#编写),但netcat正确发送文件。 为什么? 我必须在C#中修改服务器代码或客户端? 为什么IF语句不可缓存并在read函数中循环以等待数据?

0 个答案:

没有答案