我正在使用PySNMP 4.4.6,我想将运营商更改为TCP。
这意味着我想使用TCP协议轮询SNMP数据。
当我将运营商切换到TCP时,我得到了以下错误:
File "send-trap-over-ipv4-and-ipv6.py", line 76, in <module>
transportDispatcher.runDispatcher()
File "/usr/local/lib/python2.7/dist-packages/pysnmp/carrier/asyncore/dispatch.py", line 50, in runDispatcher
raise PySnmpError('poll error: %s' % ';'.join(format_exception(*exc_info())))
pysnmp.error.PySnmpError: poll error: Traceback (most recent call last):
; File "/usr/local/lib/python2.7/dist-packages/pysnmp/carrier/asyncore/dispatch.py", line 46, in runDispatcher
use_poll=True, map=self.__sockMap, count=1)
; File "/usr/lib/python2.7/asyncore.py", line 220, in loop
poll_fun(timeout, map)
; File "/usr/lib/python2.7/asyncore.py", line 201, in poll2
readwrite(obj, flags)
; File "/usr/lib/python2.7/asyncore.py", line 123, in readwrite
obj.handle_error()
; File "/usr/lib/python2.7/asyncore.py", line 110, in readwrite
obj.handle_write_event()
; File "/usr/lib/python2.7/asyncore.py", line 468, in handle_write_event
self.handle_write()
; File "/usr/local/lib/python2.7/dist-packages/pysnmp/carrier/asyncore/dgram/base.py", line 155, in handle_write
raise error.CarrierError('sendto() failed for %s: %s' % (transportAddress, sys.exc_info()[1]))
;CarrierError: sendto() failed for 172.16.152.177:162: [Errno 2] No such file or directorycaused by <class 'socket.error'>: [Errno 2] No such file or directory
caused by <class 'pysnmp.carrier.error.CarrierError'>: sendto() failed for 172.16.152.177:162: [Errno 2] No such file or directorycaused by <class 'socket.error'>: [Errno 2] No such file or directory
不幸的是,pysnmp 4.x目前不提供TCP传输支持。不过,这方面的工作仍在进行中。有可能在pysnmp5.x.中支持流传输