Как узнать, в какой момент запрос не выполняется в Windows 8

Как узнать, в какой момент запрос не выполняется в Windows 8

Я тестирую небольшой скрипт на Windows 8, который пытается загрузить простую веб-страницу через порт 80. Однако сетевое соединение каждый раз прерывается с ошибкой10053.

Сначала я думал, что проблема в брандмауэре (у меня установлен McAffee), но теперь я в этом не уверен (в журналах ничего нет; при отключении брандмауэра все равно происходит сбой).

Так что я могу сделать, чтобы определить проблему? Например, как убедиться, что запрос покинул сетевую карту?

Я запустил Wireshark, и он действительно показал небольшую активность:

(я) СИН

(удаленный IP) SYN, ACK

(я) АСК

(я) RST, ACK

Значит ли это, что запрос действительно был отправлен?

заранее спасибо

решение1

Ошибка Winsock10053 = "WSAECONNABORTED":

SOCKET_ERROR: Установленное соединение было прервано программным обеспечением на вашем хост-компьютере.

Упомянутое «программное обеспечение» (скорее всего)Винсоксам.

Найденныйэта страница, в которой есть отличная аннотация, которая, кажется, охватывает именно то, с чем вы столкнулись, а именно то, что ваш скрипт, вероятно, не формирует правильный заголовок HTTP.

HTTP POST должен быть отправлен на HTTP-сервер.
Сервер начинает читать POST и замечает, что заголовок HTTP-запроса недействителен.
Он немедленно отправляет HTTP-ответ (со статусом ошибки, возможно, status=400) и закрывает соединение, не пытаясь продолжить чтение оставшейся части HTTP-запроса, который будет получен.

Тем временем клиент все еще счастливо записывает остаток HTTP-запроса в сокет. (Помните, что соединение сокета TCP/IP должно быть закрыто с обеих сторон. В этом случае сервер закрыл свою сторону, но клиент все еще перекачивает данные в полуоткрытое соединение.)

Клиент заканчивает запись HTTP POST в сокет — это означает, что данные были буферизированы в Winsock. Затем клиентское приложение пытается прочитать HTTP-ответ, но не может, потому что исходящая повторная передача (буферизованных данных WinSock) не удалась, а соединение сокета было закрыто на стороне клиента (Winsock). Несмотря на то, что HTTP-сервер отправил ответ, он теряется и не может быть восстановлен. Ошибка, которую получит ваше приложение при попытке прочитать HTTP-ответ на сокете, — WSAECONNABORTED.

Связанный контент