1

Python 2.7.x で HTTP 経由でエミュレートされた TCP 接続を確立する最も簡単な方法は何ですか?

サーバー: 専用 IP を提供しない、pythonanywhere (またはいくつかのアナログ) 無料ホスティングの python プログラム。クライアント: Windows PC 上の Python プログラム。

接続は multiprocessing.BaseManager を介して確立され、同じマシンでサーバーとクライアントの両方をテストするときに正常に機能します。

コードへの最小限の追加で HTTP 経由でこれを機能させる方法はありますか?

PS グリッド コンピューティング プロジェクトでこれが必要です。PPS Python & ネットワーク & Web プログラミングは初めてで、数日前に勉強を始めました。

これを見つけました: 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 メソッドは実際に何をしますか? 問題の解決に使用できますか?

4

1 に答える 1

2

クライアントでの使用法:

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

コードはソケットをラップして、プロキシ設定への最初の HTTP CONNECT 要求を実行し、HTTP プロキシを取得して TCP 接続をプロキシしますが、そのためには準拠したプロキシが必要です (ほとんどの場合、TCP 接続を開くことはできません) HTTPS の場合)。HTTPConnection.set_tunnel は基本的に同じことを行います。

あなたのユースケース、無料のホスティングで実行されているプログラムでは、これは機能しません。無料のホストでは、おそらく http 要求の処理のみが許可され、長時間実行されるプロセスが tcp 接続をリッスンすることはありません (コードが想定しています)。データを投稿するために通信をトンネリングして整理する必要があることを再考する必要があります (投稿した内容に対する回答でない限り、サーバーからのメッセージをポーリングします)。または、リモートでホストできるものをより細かく制御できる VPS ホスティングを購入することもできます。

于 2013-05-25T09:50:35.383 に答える