0

複数の「クライアント」に接続してリッスンするPythonデーモンで作業しています。

重要: デーモンのポートは、すべてのクライアントで同じでなければなりません。

class UDPReader(asyncore.dispatcher):
        def __init__(self, local, remote, parser):
                asyncore.dispatcher.__init__(self)
                self.parser = parser
                self.create_socket(socket.AF_INET, socket.SOCK_DGRAM)
                self.bind(local)
                self.connect(remote)

私の質問は、複数の「クライアント」に同時に接続し、同じポートでリッスンするにはどうすればよいですか? データがどのクライアントから来ているかを確認する方法はありますか?

4

1 に答える 1

1

socket.recvfrom()を参照してください。戻り値は、送信者のアドレスと、後続の呼び出しに渡すこと(string, address)addressできるもののペアです。socket.sendto()

UDPconnect()を使用すると、実際には接続が設定されないため、どこからでも送受信できます。実際には、ソケットのデフォルトの宛先アドレスを内部的に設定し、毎回明示的にアドレスを渡す代わりにsend()orを使用できるようにするだけです。write()

于 2013-05-20T17:15:55.990 に答える