0

파이썬 체크 웹 사이트/서버 상태를 XP SP3에서 실행 중이며 멀티 스레드는 다른 사이트/서버를 확인하는 데 사용되는 GUI 프로그램입니다. 몇 시간이 지나면 프로그램은 항상 urlopen 오류가 발생하기 시작합니다.이 오류는 서버에서 POST 요청을 한 직후에 발생합니다 (A 또는 B 또는 C 일 수 있음). 일반적으로 몇 시간이 지나면 문제가 발생한 첫 번째 POST 요청이며 알 수없는 순간에 POST 요청이 발생합니다. 그때부터는 urlopen 오류 시간이 초과되었습니다.ping을 할 수는 있지만 몇 시간 동안은 내 파이썬 프로그램을 실행 한 후에 찾아 볼 수 없습니다.

나는 여전히 ping을 할 수 있지만 프로그램이 모든 것이 정상적으로 종료되면 어떤 사이트도 탐색 할 수 없습니다. 그것은 분명히이 문제를 일으키는 프로그램입니다, 글쎄요, 문제가 무엇인지를 디버깅/검사하는 방법을 모르거나, OS 쪽에서 왔는지, 아니면 너무 많은 리소스/연결을 낭비하고있는 프로그램인지 알지 못합니다 (여전히 할 수 있습니까? 핑이 너무 많은 연결이 사용되면?), 아무도 나를 도와주지 않겠습니까?

+0

다른 관련 질문에 대해서는 다른 사람들이 제안했습니다. 동일하거나 다른 OS (또는 그 버전)를 실행하는 다른 컴퓨터에서 스크립트를 사용해보십시오. – martineau

답변

3

각 요청 후에 TCP 세션을 닫으시겠습니까? netstat 정보를 수시로 확인해보십시오. 활성/설정된 세션의 수가 증가하는 것을 보게되면 스크립트에 몇 가지 문제가 있음을 의미합니다.

예, 일반적으로 무료 TCP 소켓이 없어도 핑 (ping) 할 수 있습니다.

+0

많은 사람 감사합니다! 델은 연결을 끊지 만 실제로는 그렇지 않습니다. netstat을 사용하여 모든 리소스를 낭비하는 "Close_Wait"연결이 수없이 많았습니다. 코드를'.close()'로 변경하면 이제 모든 것이 OK입니다. – Shane

+0

@Shane : 문제를 발견했기 때문에 기쁩니다. Wireshark 네트워크 분석기를 사용하여 네트워크 문제도 파악할 것을 제안합니다. 행운을 빕니다 ;) – Elalfer

관련 문제