Получение файлов - PullRequest
       4

Получение файлов

0 голосов
/ 26 марта 2012

У меня проблема с получением файлов. Есть клиент, который отправляет файлы, и сервер, написанный на 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 p == 0 кажется недоступной для клиента (написано на C #), но netcat правильно отправляет файл. Зачем? Я должен изменить код сервера или клиента в C #? Почему оператор IF недоступен и зацикливается в функции чтения для ожидания данных?

...