那条准则有什么错:
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)
错误:
^{pr2}$“socket.SO_RCVTIMEO
”中是否有错误。
是一种服务器,它不会停止并超时
谢谢
萨姆·哈特曼的建议是正确的。要做到这一点,最简单的方法是
注意这不是万无一失的。
sys.maxsize
如果混合了体系结构(64位操作系统上的32位python等),则可能会报告错误。在Struct timeval在64位linux上为16位。更一般地说,我认为至少在大多数64位平台上,您应该在struct调用中使用64位整数。 很难看,这是架构和操作系统依赖的。 那就试试吧 结构包('ll',整数(2),整数(0))
相关问题 更多 >
编程相关推荐