Спасибо, что нашли время, чтобы дать мне предложения (медленный). Я попытался включить TCP_NODELAY, но это не решило проблему. Почему я сказал «проблема» - ответьте ниже.
Я посмотрел в свой send () и заметил, что я использовал sizeof (сообщение) вместо strlen (сообщение). sizeof () - получает размер байтов для отправки. strlen () - получает количество отправляемых символов, исключая \ 0.
Я был довольно наивен, чтобы следовать тому, что говорилось в справочной странице по Ubuntu.
yakult121 $ man send
ssize_t send (int sockfd, const void * buffer, size_t len, int flags);
Я думал, что аргумент size_t len должен был использовать sizeof (), как я использовал его для memset ().
yakult121 $ man memset
void * memset (void * s, int c, size_t n);
Я также наконец понял, что socklen_t и size_t - это разные типы данных.
Еще раз спасибо всем. Я не смог бы найти проблему и продолжал указывать пальцем на алгоритм Нейгла.