Я пишу простой сервер / клиент в c, где сервер временно сохраняет сообщение от клиента и извлекает его, когда клиент запрашивает его.
Проблема в том, что, когда клиент получает сообщение от сервера, буфер действует довольно странно.
Все, что я сделал, это прочитал столько, сколько получил от сервера и напечатал его на экране, но каким-то образом буфер был перезаписан больше, чем максимальный размер буфера
в клиенте
while((byteRead = recv(ssock, buffer, MAXBUF, 0)) > 0)
{
if(byteRead <= 0)
break;
printf("%s", buffer);
}
где MAXBUF - 256. Он содержит несколько мусоров, поэтому я проверил размер строки в буфере
и удивительно
printf("%d READ vs %d buffer strlen \n", byteRead, strlen(buffer))
покажи мне, что byteRead равен 256, а длина строки буфера равна 262.
Есть идеи ??
P.s на стороне сервера, он правильно читает файл и отправляет его в сокет.