Есть ли ограничения на чтение? - PullRequest
1 голос
/ 16 апреля 2020

Я пытаюсь реализовать клиент-серверное приложение с сокетами, дело в том, что я хочу прочитать на сервере большое сообщение. И чтение делает неожиданные вещи. Это моя реализация прочитанного сообщения (сначала я получил размер сообщения)

        ssize_t bytesRead=0;
        while (bytesRead < size_msg_){
            ssize_t ret = read(s_conec,msg+bytesRead,SSIZE_MAX);
            if (ret == 0)
                break; //EOF
            bytesRead +=ret;
            int aux = ( (bytesRead * 100)/size_msg_ );
            printf("I have read a %d percent \n", aux); 
}

Теперь, если я попытаюсь увидеть, что сервер читает с помощью strace, я получу следующее:

read(7, "En un lugar de la Mancha, de cuy"..., 2147483647) = 873056
read(7, " sino de amores -respondi\303\263 don "..., 2147483647) = 523864
read(7, "o, por parecerme que, en la ley "..., 2147483647) = 458381
read(7, " con \303\251l se defend\303\255a de la nube"..., 2147483647) = 458381
read(7, " que all\303\241 quedan y aqu\303\255 van le"..., 2147483647) = 458381
read(7, " otros semejantes pasaron la noc"..., 2147483647) = 458381
read(7, "rlas. Acudi\303\263 Sancho a su asno p"..., 2147483647) = 458381
read(7, " Quijote dec\303\255a, y, celoso de qu"..., 2147483647) = 2160939

И так далее, без рисунка. Я хочу знать, есть ли предел, связанный с функцией чтения, который я мог бы изменить, потому что эта реализация занимает много времени, чтобы прочитать полное сообщение

...