私はPython(2.6/2.7)の初心者で、既存のPythonアプリへのネットワークサービスを作成するために深いところに投げ込まれました。
私は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 から返されるデータの問題です。有効かどうかを確認するのは単純な 「if data : then」ですか?
第三に、そして最後に、スレッドです。スレッドは爆破できますか? それを再起動する最良の方法は何ですか?
他のヒントは大歓迎です。
(注:ツイストなどの外部ライブラリは使用できません。)