私は、既存のpythonアプリケーションへのネットワークサービスを作成するために深いところに投げ込まれたPython(2.6/2.7)の初心者です。python UDPサーバーを強化する
私はUDPサーバを稼働していますが、うまく動作しますが、少し弾力を増強するための助けを求めています。ここで
は、私が書かれているベースコード、通常の標準ボイラープレートです:
import sys
import socket
from threading import Thread
def handleInput():
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(("127.0.0.1",5005))
# socket always binded?
while True:
data, addr = sock.recvfrom(512)
# is 'data' usable?
t=Thread(target=handleInput)
t.daemon=True
t.start()
# can thread die?
はまず、私はそれはそうそこに、耳を傾けていなくても、ソケットは常に感覚で利用可能であることを理解します失敗したようなものではなく、あなたは再接続する必要があります。これは正しいです?
第2に、recvfromから返されたデータに関する問題。それは簡単ですか'データの場合:'は有効かどうかを確認しますか?
最後に、スレッドです。スレッドを爆発させることはできますか?もしそれが再起動する最良の方法は何ですか?
その他のヒントをお待ちしております。
(注:私は外部のライブラリを使用することはできません、例えばねじれなど)
上記の「スレッド」コードで何を達成したいと思いますか?それは、単に 'handleInput()'を実行する以上の価値はありませんが、スクリプト全体は、1つのクライアントで終了するまでブロックされます。あなたは複数の "クライアント"を同時に扱うことを望んでいますか? –
このコードは、別のpythonアプリケーションに挿入されます。そのスレッドの理由です。並行処理に関しては、複数のクライアントからのメッセージはすべてキューに入れられませんか? – kingsaul