LINUX.ORG.RU

История изменений

Исправление zudwa, (текущая версия) :

без shutdown почему-то не доходит последний байт

там ошибка при приеме: при ошибке единица вычитается, д.б. как-то так:

    for (;;) {
        res = read(client, buffer, sizeof buffer);
        if (res == 0)  // EOF
            break;

        if (res < 0)  {
            perror("read");
            printf("error number: %d\n", errno);
            break;
        }

        bytesRead += res;
        printf("%ld bytes received. %ld total.\n", res, bytesRead);
    }

    close(client);

Исходная версия zudwa, :

без shutdown почему-то не доходит последний байт

там ошибка при приеме: при ошибке единица вычитается, д.б. как-то так:

    for (;;) {
        res = read(client, buffer, sizeof buffer);
        if (res == 0) {  // EOF
            close(client);
            break;
        }
        if (res < 0)  {
            perror("read");
            printf("error number: %d\n", errno);
            break;
        }

        bytesRead += res;
        printf("%ld bytes received. %ld total.\n", res, bytesRead);
    }

тогда данные без shutdown перед close в клиенте передаются на сервер полностью