1) Вам может потребоваться очистить стандартный вывод для отображения данных: fflush(stdout);
2) Если имеется лот данных, то вам, вероятно, нужно использовать циклчитать из сокета.(Если вы пойдете по этому пути, вы, вероятно, можете уменьшить значение MAXBUFFER, но не обязательно.)
Примечание: производственный код также должен распознавать, когда был получен конец дискретного сообщения -с помощью счетчика длины, или поиска определенного кода завершения, или некоторых других средств.Это не показано здесь.(Если вы используете счетчик длины, достаточно просто суммировать значения «bytesRead» для отслеживания.)
// Add a byte at the end to allow for a terminating null char
char buffer[MAXBUFFER + 1];
buffer[MAXBUFFER] = '\0';
//...
int bytesRead;
while((bytesRead = read(sock, buffer, MAXBUFFER)>0)) {
printf("%s", buffer);