ce qui est faux dans ce code:python setsockopt ce qui est worng
def iec104(dst):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
time = struct.pack('ii', int(2), 0)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, time)
try:
sock.connect(dst)
except:
return '', -1
dst = (ip, 2404)
recv, asdu_addr = iec104(dst)
print "ip: {0}, recv: {1}, asdu_addr: {2}".format(ip,
recv.encode('hex'), asdu_addr)
erreur:
sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, time)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 22] Invalid argument
Y at-il bug dans "socket.SO_RCVTIMEO
". Est un type de serveur qui a l'habitude d'avoir un timeout Merci
99% du temps, il n'y a pas de bogue dans un code autre que le vôtre. Ne pas dire que ce n'est pas 1%, ce n'est pas là que vous devriez commencer à regarder. –