2014-04-08 4 views
1

서버 연결을 열고 청크 인코딩 된 HTTP 게시물을 보내고 있습니다. 내가 연결 한 서버는 데이터가 1 ​​분 안에 전송되지 않으면 연결을 닫습니다. 따라서 데이터를 쓸 때 연결이 아직 열려 있는지 확인하고 싶습니다.Httplib - 연결이 열려 있는지 확인하십시오.

연결이 같은 초기화됩니다 :

conn.send('{msglen}\r\n{msg}\r\n'.format(msglen=msglen, msg=msg)) 

이 연결이 열려있는 경우 알 수있는 방법이 있나요 :

conn = httplib.HTTPConnection(url, 80) 
conn.putrequest('POST', '/') 
conn.putheader('Host', hosturl) 
conn.putheader('Transfer-Encoding', 'chunked') 
conn.putheader('Connection', 'close') 
conn.endheaders() 

그리고 데이터가 작성됩니다? 나는 예외 httplib.NotConnected를 발견,하지만 난 실행하는 경우 :

conn.close() 
conn.send(data) 

를 예외가 발생되지 않습니다.

도움 주셔서 감사합니다.

답변

0

conn.sock != None 

날씨가 연결 또는 아니에요을 나타낼 것으로 보인다.

+0

닫기! 그러나 서버가 연결을 종료하면 httplib이 여전히 소켓 인스턴스를 유지하는 것처럼 보입니다. –

+0

: - [. conn.sock.send와 conn.sock.recv도 예외를 생성하지 않는 것으로 보입니까? – Abram