Я пытаюсь реализовать клиент-серверное приложение с сокетами, дело в том, что я хочу прочитать на сервере большое сообщение. И чтение делает неожиданные вещи. Это моя реализация прочитанного сообщения (сначала я получил размер сообщения)
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
И так далее, без рисунка. Я хочу знать, есть ли предел, связанный с функцией чтения, который я мог бы изменить, потому что эта реализация занимает много времени, чтобы прочитать полное сообщение