UDP経由でサーバーに接続し、応答でいくつかのデータグラムを受信するPythonスクリプトがあります。私は recvfrom() を使用していますが、最初の応答のみを収集し、後続の応答は収集していません。これは予想される動作であると理解しています。すべての応答データグラム (約半ダース) を処理できるようにするには、何を使用すればよいですか? 実際に recvfrom() である場合、ループにどの条件を使用すればよいですか? また、ループで recvfrom() を使用するには、ソケットに対して他に何をする必要がありますか?
#!/usr/bin/python
import socket
MESSAGE = "\xFF\xFF\xFF\xFFgetservers protocol_num args"
endSequence = "\x45\x4f\x54\x00\x00\x00" #EOF
datagrams = []
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(MESSAGE, ("master.serverlist.org", 15000))
buf = sock.recvfrom(2000) [0]
#process...