Python: Få sender af UDP broadcast/socket.recvcmsg () på Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger socket.recvmsg() for at få dataene og afsenderens IP-adresse til en UDP-udsendelsesbesked. Dette virker fint på Linux, men denne metode er ikke tilgængelig på Windows (Python 3.3). Hvordan kan jeg få afsenderen ' s IP-adresse? [4]


from socket import *

fd = socket(AF\_INET, SOCK\_DGRAM)
fd.setsockopt(SOL\_SOCKET, SO\_REUSEADDR, 1)
fd.setsockopt(SOL\_SOCKET, SO\_BROADCAST, 1)

data, \_, \_, addr = fd.recvmsg(4096) # <- how to achieve this without recvmsg?
host, upd\_port =  addr

Bedste reference


Jeg har bemærket i Python-dokumentationen, at du linkede, at recvfrom returnerer lignende værdier til, hvad din kode søger (bytes, adresse) og er kompatibel med Windows [5]



  socket recvfrom ( bufsize [[, flag]]) [6]