我是新的,我的第一個節目是寫代碼,用於接收多播包。什麼是蟒蛇4SL格式struct.pack的Python
我得到this代碼例如代碼和無處不在的類似代碼。
import socket
import struct
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('', 4242))
mreq = struct.pack("=4sl", socket.inet_aton("224.51.105.104"), socket.INADDR_ANY)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
while True:
print sock.recv(10240)
我無法弄清楚這段代碼。尤其是4sl部分
'INET_ATON(3)'已經確實爲網絡字節順序轉換的本機的,所以'='是正確的。 – Aya 2013-05-07 13:19:25
Endianess不適用於char數組(如Python'socket.inet_aton'的返回值是),僅適用於多字節數值。 – 2013-05-07 13:26:43
@StefanoSanfilippo好點,並且由於'socket.INADDR_ANY'無論如何都是零,所以字節順序是不相關的。 – Aya 2013-05-07 13:36:55