問題タブ [python-sockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
967 参照

python - TCPServer をマルチプロセッシングにする方法

クライアント ソケットからの TCP リクエストを処理するために TCPHandler を使用していますが、次のようなスニペット コードである multiThreading を使用しているときにパフォーマンスの問題が発生しました。

上記のコードは multipleThreading ですが、これを multipleProcessing に変換するにはどうすればよいですか。

0 投票する
1 に答える
1750 参照

python - Python sock.recv がページからすべてのデータを取得しない

これは、低レベルのソケット通信を行う方法を学ぶのに非常に難しいステップでしたが、本当にこれを学びたいと思っています。壁に来て、適切な方法を見つけることができないようです.

すべてのデータを取得するにはどうすればよいですか? 複数のことを試しましたが、応答の一部しか取得できません。

私が今試しているURLは次のとおりです。

調査の結果、この方法を試しましたが、上記の完全な JSON ページを印刷できませんでした。何か間違っていますか?

0 投票する
0 に答える
195 参照

python - httplib.HTTPSConnection() によって作成された接続が最後に作成された時間

Python と httplib ライブラリを使用して、Parse.com で設定したプロジェクトからデータを取得する必要があります。私の会社のファイアウォール ルールにより、より一般的な "httplib2"、"requests"、および "urllib2" ライブラリは使用できません。

httplib と HTTPSConnection に関するいくつかの質問:

  1. が呼び出されたとき、セッションconn = httplib.HTTPSConnection("api.parse.com", 443)の最後の時間はどれくらいですか?conn
  2. conn = httplib.HTTPSConnection("api.parse.com", 443)電話する必要があるたびに、最初に電話する必要がありますconn .request('GET')か?
  3. 私はプロキシの背後にいて、ネットワークの状態が安定していないため、失敗するsocket.gaierror errno 11004 getaddrinfo failed原因となる例外がスローされることがあります。GET/POSTネットワークの問題が原因で接続がドロップまたは失われたかどうかを確認するにはどうすればよいですか?
0 投票する
2 に答える
349 参照

python - socket.recv() の後に break ステートメントに到達しないのはなぜですか?

次のコードを記述してデータを受信し、データをファイルに書き込みます。

私の質問は: if ブランチ (" if not data: break ") が実行されないことがわかりました、1)。if ブランチに到達しないのはなぜですか? 2)。コードが while ループを終了するにはどうすればよいですか?

0 投票する
1 に答える
1226 参照

python-3.x - Asyncio ソケット リーダーが空のバイトを返す

簡単なクローラーを作成しようとしています。ただし、サーバーからの応答を読み取ろうとすると、最初にのみ応答が返されます。次に、リーダーはバイトの読み取りを停止し、b'' を返します。タイムアウトを入れて、書き込み後にdrain()を使用しようとしました。結果を出していません。Wireshark は回答がサーバーから来ていることを示していますが、私のプログラムは回答を認識していません。

0 投票する
0 に答える
91 参照

python - 同じネットワーク上にない 2 つの異なるマシン間で ssh トンネルを開く方法は?

以下のコードを試しました:

しかし、私はエラーが発生しました:

その私wan ip:78.163.XX.XXと私はsshポート(22)と通常のポート(4444)をinternal ip (192.168.2.50)開き、モデムインターフェイスから私のポートにリダイレクトしましたが、それでも同じネットワーク上にない2つの異なるコンピューター間のsshトンネルを開くことができません。
どうすればこの問題を解決できますか? または私の問題は何ですか?何か案が?
さらに、ローカルで host=socket.gethostname() を試すと、正しく動作しますが、同じネットワーク PC では動作しません。
前もって感謝します..

0 投票する
2 に答える
9093 参照

python - いつ/なぜ s.shutdown(socket.SHUT_WR) を使用するのですか?

Pythonネットワークプログラミングの学習を始めたばかりです。Foundations of Python Network Programming を読んでいましたが、s.shutdown(socket.SHUT_WR) の使用を理解できませんでした。ここで、s はソケット オブジェクトです。これが使用されるコード (ここで、sys.argv[2] はユーザーが送信したいバイト数で、16 の倍数に丸められます) です:

そして、これは著者が提供する説明であり、私が理解するのが難しいと感じています:

2 番目に、クライアントが送信の送信を終了した後、ソケットで shutdown() 呼び出しを行うことがわかります。これにより、重要な問題が解決されます。サーバーがファイルの終わりを確認するまで永遠に読み取りを行う場合、クライアントはソケットで完全な close() を実行する必要がなくなり、多くの recv( ) サーバーの応答を受信するためにまだ行う必要がある呼び出しはありますか? 解決策は、ソケットを「半分閉じる」ことです。つまり、一方向の通信を永久にシャットダウンしますが、ソケット自体を破壊することはありません。これにより、サーバーはデータを読み取ることができなくなりますが、残りの応答を送り返すことができます。まだ開いている他の方向。

それが何をするかについての私の理解は、それがクライアントアプリケーションがそれ以上データを送信するのを防ぎ、したがってサーバー側がそれ以上データを読み取ろうとするのを防ぐことです。

私が理解できないのは、なぜこのプログラムで使用されているのか、どのような状況で自分のプログラムで使用することを検討すべきなのかということです.

0 投票する
1 に答える
609 参照

python - Python ソケット スクリプトの何が問題になっていますか?

作業中のサーバーにプレーンテキストの http リクエストを送信するテストを支援する短いクラスを作成しましたが、サーバー以外のドメインへのリクエストであっても、それを使用して行ったリクエストはどれも通過しません。すべてのリクエストがタイムアウトしています。このクラスは、python のソケット モジュールの単なるラッパーです。興味深いことに、このクラスは数か月前まで問題なく機能していました。それ以来、私はコードに触れていません。

ソース:

これは、いくつかの変更を加えた、テストに使用したスクリプトです。私が行おうとしている実際のリクエストは、私のライブサーバーに対するものであり、リクエストはブラウザとpythonのリクエストライブラリで機能します。プライバシー上の理由から、ここにリストすることはできません。ただし、以下のリクエストもタイムアウトします。

テスト スクリプト:

どんな助けでも感謝します。ありがとう!

編集

タイムアウトは、getResponse() の try/except ブロックでキャッチされます。出力は次のようになります。