Полагаю, ошибка 10054, о которой вы говорите, это Ошибка Winsock "Сброс соединения по пиру" .
Ваша проблема в том, что у вас есть 3 \r\n
пар между заголовком http и телом, а не просто 2
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3\r\n"
"\r\n\r\n"
"para:test_tst_tst"
Цитирование из спецификации :
generic-message = start-line
*(message-header CRLF)
CRLF
[ message-body ]
Таким образом, сервер будет читать третью пару \r\n
как первые 2 байта тела, а затем то, что осталось от 17 байтов длины тела, как указано в заголовке Content-Length
. Поэтому вместо того, чтобы начинать с POST
, ваш второй запрос будет интерпретироваться как начинающийся с stPOST
, что, вероятно, сбивает с толку сервер.
Удалите одну \r\n
пару, и все будет в порядке.
Кстати, Keep-Alive
- это значение по умолчанию для Connection-Type
в HTTP 1.1, поэтому вам даже не нужно указывать это явно.