2010-07-02 105 views
0

荫使用SNMP根据需要IAM编码SNMP请求数据到OAMPDU包格式和发送至远程系统。远程系统访问远程系统data.But接收的OAMPDU包,解码它并正在发送SNMP请求通过其结合至161.but IAM无法接收来自SNMP agent.i响应已经创建了一个UDP套接字其绑定至161端口来接收响应端口UDP套接字到SNMP代理。无法接收来自SNMP端口响应

如果我使用161以外的任何其他自由端口号来接收snmp代理,则不会将响应发送到该端口。

任何人都可以请建议我如何克服这个问题。

我们可以配置tx,rx的不同端口吗?

我们如何知道snmp发送响应的端口?

回答

1

每个UDP数据包都有一个源端口和一个目的端口。 SNMP管理器使用任何源端口和目标端口161发出SNMP请求。代理将回复管理器上的源端口。例如:

Manager         Agent 

source port: <random number> 
dest port: 161 
content: what is your sysUpTime 
              source port: 161 
              destination port: <same random number> 
              content: sysUpTime is 42 seconds 

回复上random number港后,没有161端口那么经理侦听端口161是不可能收到许多回复。不要在端口161上侦听,而是在用于发送请求的相同套接字上侦听。该套接字将记住它选择发送的源端口。

P.S.当您使用SNMP进行查询时,SNMP的manager是UDP的client,而SNMP的agent是UDP的server

+0

其实我的应用程序既不是SNMP管理器或SNMP agent.my应用程序只使用SNMP agent.if我的应用程序进行交互,通过UDP套接字发送请求,161端口的话,我怎样才能从SNMP agent.i响应意味着通过该端口I可以收到响应,因为它正在选择一个随机端口号。 – user381956 2010-07-02 12:20:10

+0

@ user381956:您应该使用您用来发送请求的相同套接字来收听回复。在Google上搜索示例,有很多。 – Andomar 2010-07-02 22:15:29

相关问题