2013-05-25 2 views
1

파이썬 2.7.x와 함께 HTTP를 통해 에뮬레이트 된 TCP 연결을 설정하는 가장 쉬운 방법은 무엇입니까?HTTP 에뮬레이션을 통한 파이썬 TCP

서버 : pythonanywhere (또는 일부 아날로그) 무료 호스팅의 Python 프로그램으로 전용 IP를 제공하지 않습니다. 클라이언트 : Windows PC의 파이썬 프로그램.

연결은 다중 처리 .BaseManager를 통해 설정되며 동일한 시스템에서 서버와 클라이언트를 모두 테스트 할 때 잘 작동합니다.

최소한 코드를 추가하여 HTTP를 통해이 작업을 수행 할 수있는 방법이 있습니까?

P. 그리드 컴퓨팅 프로젝트에 필요합니다. P.P.S. 나는 파이썬 & 네트워크 & 웹 프로그래밍에 익숙하지 않다 며칠 전에 그것을 공부하기 시작했다.

발견 : http://code.activestate.com/recipes/577643-transparent-http-tunnel-for-python-sockets-to-be-u/. 서버/클라이언트 측에서 setup_http_proxy()를 호출하는 방법을 이해할 수는 없지만 정확히 필요한 것으로 보입니다. setup_http_proxy ("my.proxy", 8080)를 양쪽에서 시도했지만 작동하지 않았습니다.

또한 다음을 찾았습니다. http://docs.python.org/2/library/httplib.html. HTTPConnection.set_tunnel 메서드는 실제로 무엇을합니까? 문제의 문제를 해결하는 데 사용할 수 있습니까? 클라이언트

답변

2

사용법 :

setup_http_proxy("THE_ADRESS", THE_PORT_NUMBER) # address of the Proxy, port the Proxy is listening on 

코드는 당신을위한 TCP 연결 프록시에 HTTP 프록시를 얻기 위해 프록시 설정으로 요청을 연결 초기 HTTP를 수행하기 위해 소켓을 래핑하지만 당신이 필요합니다 호환되는 프록시 (대부분 HTTPS가 아닌 경우 TCP 연결을 열 수 없습니다). HTTPConnection.set_tunnel은 기본적으로 동일한 작업을 수행합니다.

무료 호스팅에서 실행되는 프로그램의 경우이 기능은 작동하지 않습니다. 무료 호스트는 아마 당신이 HTTP 요청을 처리하도록 허용 할 것이고, 장기 실행 프로세스는 tcp 연결 (코드에서 가정)을 수신 대기하지 않을 것입니다. 데이터를 게시하기 위해 통신을 터널링하고 구성해야하는 필요성을 재고해야합니다 (게시물에 대한 답변이 아닌 경우 서버의 메시지를 폴링). 또는 VPS 호스팅을 구입하면 원격으로 호스팅 할 수있는 것을보다 효율적으로 제어 할 수 있습니다.