如何在pysnmp-4.4.6版本中使用TCP传输



我正在使用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.中支持流传输

最新更新