Я думаю, это потому, что вы не установили заголовок длины содержимого.если запрос отправлен на сервер, данные отправляются в теле запроса.Из-за характеристик потокового соединения tcp сервер не может определить длину запроса, если вы явно не укажете это в заголовке.не зная, когда ваш запрос заканчивается, сервер должен ждать бесконечно.
, и атрибут timeout здесь не работает, потому что ваш сокет не заблокирован ни при какой операции recv / send.Вы закончили запись данных через сокет, но сервер считает, что вам нужно больше отправлять.