send (client_fd, "Login:", BUFSIZE, 0);
- Для этого оператора send попытается отправить байты BUFSIZE, хотя ваша строка - только "Login:".send по сути не пытается понять строку 'C'.Он просто распознает поток байтов.Итак, ваше утверждение для отправки неверно.
recv (client_fd, имя пользователя, sizeof (имя пользователя), 0)
- В случае recv, хотя вы упомянули «sizeof (имя пользователя)", это не значит, что он вернет байты" sizeof (username) ", количество возвращаемых байтов можно узнать с помощью возвращаемого значения recv.Никогда не пытайтесь интерпретировать содержимое буфера, переданного в recv, без проверки возвращаемого значения recv.Но указание sizeof (имя пользователя) гарантирует, что вызов recv не вернет больше байтов sizeof (имя пользователя), даже если в сетевом буфере присутствует большее количество байтов.