Это может произойти, потому что ваш сервер отправляет пустую строку. Таким образом, ваш клиент не блокирует, потому что он получил символ '\0'
, и он ничего не печатает, потому что это пустая строка.
Вторая причина может заключаться в том, что ваш сервер закрыл соединение. В этом случае значение numbytes
равно нулю, и ваш клиент не будет ничего печатать, потому что вы также получите пустую строку в буфере.
Одна проблема с вашим кодом заключается в том, что если сервер отправляет 1024 байта или более, numbytes
будет равен 1024, а выражение buf[numbytes]
вызовет ошибку сегментации, если размер буфера также равен 1024. Вы можете предотвратить эту проблему, получив 1023 вместо 1024.