これまでの興味深い回答に感謝します。上記の回答に照らして、私は少し質問を変えました。(そこにあります)通常のソケットオブジェクトに比べて、pythonソケットサーバーのパフォーマンス上の利点はありますか?
待ち時間とストレスの両方の時間を処理するように設計されたストレートソケットライブラリとは対照的に、ソケットサーバであることがわかります。暗黙的に宣言された状態を"サーバー"、、またはちょっと使いやすくなっていますか?
誰もがソケットサーバを推奨しているようですが、ソケットとは対照的に、なぜ私はまだ完全にはっきりしていません。
ありがとうございます!
私は、標準ソケット ライブラリ http://docs.python.org/library/socket.html
に基づいて pythonでいくつかのサーバープログラムを構築してきた私は、彼らは傾向を持っている負荷 なしことを除いて うまく働くように見えることに気付きましたしばらくしてから 寝る。私は、これは は生産の問題(他の問題がたくさんあるでしょう間違いなく ) ではないかもしれないと思いますが、私はは私はここに仕事のための適切なコードを使用して だかどうかを知りたいと思います。 http://docs.python.org/library/socketserver.html
ソケットライブラリはによると、通常5
まで、複数の 接続をリッスンする 機能を提供 - 私のpythonも socketserverライブラリを提供することを見て周り探し
ソケットサーバページ、 サービスが同期しています。すなわち、 ブロックですが、 スレッドによる非同期動作。 要求キューを維持する能力を持っていることに気付きました。 デフォルト値は最大5要求... 多分それほど大きな違いはありません。
私はまた、Twisted runs socketserverをボンネットの下に読みました。私は は、 に行くつもりがない限り、獣に入るのはむしろ のサイズです。
私の質問は、はソケットサーバ ソケットより堅牢ですか?もしそうなら、なぜですか?
(そして、どのようにあなたが知っているか?)
ちなみに、socketserver Pythonのソケットの 上に構築されたか、それは 完全に分離されていますか?
最後に、ボーナスとして誰もが 標準ソケット「秋眠り」は があまりにもその上でチャイムすること自由に感じなさいという間違ったように何ができるか1 は知っている場合。
ああ、私はpython 2.xをよく話しています。 ここでは3.xよりも の違いがあります。
ありがとうございました!
JSH
まあ、私は技術的な答えを持っていないが、私は人々の推奨あたりSocketServerを実装しました、それは間違いなく、より信頼性があります。もし誰かが低レベルの説明を思いついたら私に教えてください...ありがとう!
ミニフレームワークです。 Twistedはフル・フレームワークです。はい、彼らはお互いの上に建てられています。 Pythonの 'socket'モジュールは、OSのネイティブソケットインタフェース(WinSock、BSDソケットなど)を包むラッパーです。 PythonやC++のネットワークアプリケーションであれば、このインタフェースを使用する可能性が最も高いでしょう。そして、Pythonの 'socket'はそれを囲むラッパーであるため、' socketserver'とTwistedの両方がそれを使用します。 – Santa
'socketserver'は、フォークプロセスまたはスレッドプロセスのいずれかの能力を混在させない限り、同期しています。 Twistedは非同期ですが、通常は 'select'や' epoll'のようなものを使ってソケットをブロックし、書き込みや読み込みの準備が整うソケットをブロックすることはできません。私はTwistedでスレッディングを使用するオプションがあると信じていますが、スレッディングなしで使用する方がはるかに簡単です。ですから、私はTwistedが 'socketserver'を使うことを本当に疑っています。 –