2010-07-02 9 views
0

Iam utilisant snmp pour accéder aux données du système distant.Mais selon l'exigence iam codant les données de requête snmp au format de paquet OAMPDU et l'envoi au système distant.le système distant reçoit le paquet OAMPDU, décode et envoie la requête snmp à l'agent snmp via le socket UDP qui est lié au port 161. mais je suis incapable de recevoir la réponse de snmp agent.j'ai créé un socket udp qui est lié au port 161 pour recevoir la réponse. Si j'utilise un autre numéro de port libre autre que 161 pour recevoir l'agent snmp, il n'enverra pas la réponse à ce port. Est-ce que quelqu'un peut me suggérer comment surmonter ce problème. Puis-je configurer les différents ports pour tx, rx ???impossible de recevoir la réponse du port snmp

Comment savons-nous sur quel port snmp envoie la réponse ???

Répondre

1

Chaque paquet UDP possède un port source et un port de destination. Un gestionnaire SNMP envoie une requête SNMP en utilisant n'importe quel port source et le port de destination 161. L'agent répond au port source sur le gestionnaire. Par exemple:

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 

réponses arrivent sur le port random number, pas le port 161. Ainsi, un gestionnaire d'écoute sur le port 161 est peu probable de recevoir de nombreuses réponses. Au lieu d'écouter sur le port 161, écoutez sur le même socket que vous avez utilisé pour envoyer la requête. Cette socket se souviendra du port source choisi pour l'envoi.

P.S. Lorsque vous utilisez SNMP pour interroger, SNMP manager est UDP client et SNMP agent est UDP server.

+0

en fait mon application n'est ni gestionnaire snmp ni snmp agent.my l'application interagit uniquement avec snmp agent.if mon application envoie une requête via socket udp, port 161 alors comment puis-je obtenir la réponse de snmp agent.i signifie par quel port je peut recevoir la réponse parce qu'il choisit un numéro de port aléatoire. – user381956

+0

@ user381956: Vous devriez écouter les réponses en utilisant le même socket que vous utilisez pour envoyer la requête. Rechercher des exemples sur Google, il y en a beaucoup. – Andomar

Questions connexes