glaer Δημοσ. 28 Μαΐου 2011 Δημοσ. 28 Μαΐου 2011 Γεια σας,Εχω κολλησει καπου αν θα μπορουσε καποιος να με βοηθησει.θελω να φτιαξω μια εφαρμογη manager-agent.manager-agent ειναι ιδιο με client-server.Ο agent(server) δινει την δυνατοτητα στον manager(client) να αλλαζει την τιμη σε μια απο τις παραμετρους που του δινονται. O Manager επιλεγει την παραμετρο και την τιμη της τα στελνει στον snmpmanager ο οποιος θα τα στειλει μεσω udp socket στον agent. Ο agent καλει την μεθοδο setValue() για να υλοποιησει την αλλαγη της μεταβλητης και να την στειλει στον manager για επιβεβαιωση της αλλαγης που εγινε. ο snmpmanager περιμενει λιγο και αν δεν του ερθει η επιβεβαιωση για την νεα τιμη ξαναστελνει τα δεδομενα. Το θεμα μου ειναι το εξης στην agentmain στην συνθηκη if(method.equals("set_request"){...} ενω μεταφερονται τα δεδομενα απο το snmpmanager στον agent και η τιμη της method ειναι οντως set_request, δεν μπαινει μεσα στην ιφ για να συνεχιζει μετα επομενα.εχετε καμμια ιδεα του γιατι? οι κωδικες για agentmain και snmpagent ειναι οι εξης: >import java.net.*; import java.io.*; public class AgentMain { public static void main (String[] args)throws Exception{ SNMPAgent agent= new SNMPAgent(); DatagramSocket agentSocket= new DatagramSocket(161); byte[] receiveMethod = new byte[1024]; byte[] receiveParamName = new byte[1024]; byte[] receiveValue = new byte[1024]; byte[] sendNewValue = new byte[1024]; System.out.println(InetAddress.getLocalHost().getHostName()); while(true) { DatagramPacket receiveMethodPacket = new DatagramPacket(receiveMethod, receiveMethod.length); DatagramPacket receiveParamNamePacket = new DatagramPacket(receiveParamName, receiveParamName.length); DatagramPacket receiveValuePacket = new DatagramPacket(receiveValue, receiveValue.length); agentSocket.receive(receiveMethodPacket); agentSocket.receive(receiveParamNamePacket); agentSocket.receive(receiveValuePacket); String method = new String(receiveMethodPacket.getData()); String paramName = new String(receiveParamNamePacket.getData()); String value = new String(receiveValuePacket.getData()); InetAddress IPAddress1 = receiveMethodPacket.getAddress(); InetAddress IPAddress2= receiveParamNamePacket.getAddress(); InetAddress IPAddress3= receiveValuePacket.getAddress(); int port1 = receiveMethodPacket.getPort(); int port2= receiveParamNamePacket.getPort(); int port3= receiveValuePacket.getPort(); String retVal; if (method.equals("setrequest")) { System.out.println("Received:" + method + "(" + paramName + "," + value + ")"); agent.setValue(paramName, value); retVal = agent.getValue(paramName); System.out.println("the retVal is"+retVal); if (retVal != null) { sendNewValue=retVal.getBytes(); DatagramPacket sendValuePacket = new DatagramPacket(sendNewValue, sendNewValue.length, IPAddress1, port1); agentSocket.send(sendValuePacket); System.out.println("Sending:" + "get_response(" + paramName + "," + retVal + ")"); } else { System.out.println("Parameter \"" + paramName + "\" does not exist!"); } } } } } >import java.net.InetAddress; import java.net.UnknownHostException; public class SNMPAgent { public static final long START_TIME = System.currentTimeMillis() / 1000; // make it seconds private String sysName="Sofoula"; private String sysLocation="Athens"; private String sysContact="-"; private String retVal; public String setValue(String paramName, String value) { System.out.println("mpainw edw"); if (paramName.equals("sysName")) { sysName= value; retVal=sysName; } else if (paramName.equals("sysLocation")) { sysLocation = value; retVal=sysLocation; } else if (paramName.equals("sysContact")) { sysContact = value; retVal=sysContact; } return retVal; } }
glaer Δημοσ. 28 Μαΐου 2011 Μέλος Δημοσ. 28 Μαΐου 2011 εχει να προτεινει κατι καποιος?το τσεκαρα ξανα και ξανα και δεν δεχεται σαν αληθης την συνθηκη ενω ειναι!
glaer Δημοσ. 28 Μαΐου 2011 Μέλος Δημοσ. 28 Μαΐου 2011 καταρχην ευχαριστω για την απαντηση. Αλλα επειδη ειναι το πρωτο μου προγραμμα java, το debug τι ειναι και πως θα μπορουσα να το κανω στο netbeans που τρεχω το προγραμμα μου?
djcat Δημοσ. 29 Μαΐου 2011 Δημοσ. 29 Μαΐου 2011 Βάλε ένα breakpoint στη θέση που θες να σταματήσει και αντί για run πάτα debug. Τα έχει όλα έτοιμα το netbeans. short tutorial video tutorials Προγραμματισμός χωρίς debug δε γίνεται!
glaer Δημοσ. 29 Μαΐου 2011 Μέλος Δημοσ. 29 Μαΐου 2011 ok ευχαριστω αλλα δεν εβγαλα πολυ ακρη με αυτο. το προβλημα μου ειναι εδω if (method.equals("setrequest")) Εχω τσεκαρει την τιμη της method πριν ελεγξει την συνθηκη και ειναι setrequest.παρολαυτα οταν την ελεγχει την βγαζει false. Επειδη εχω 4 κωδικες συνολικα 2 για manager και 2 για agent, παρατηρησα πως αν βαλω την συνθηκη if με την μεθοδο equals και τις ιδιες τιμες στο πρωτο κωδικα την αναγνωριζει σαν true, ενω στους αλλους 2 κωδικες που την χρειαζομαι κι εκει την αναγνωριζει σαν false.
ΠάρηςΓ Δημοσ. 30 Μαΐου 2011 Δημοσ. 30 Μαΐου 2011 Δεμέστιχα ; Απλά επειδη το buffo ειναι 1024 τα κάνει κενά για αυτο δε βγαινει ιδιο.... Δοκιμασε να το τριμάρεις
glaer Δημοσ. 30 Μαΐου 2011 Μέλος Δημοσ. 30 Μαΐου 2011 ναι Δεμε Βασικα αλλαξα την μεθοδο equals με contains και ξεκολλησε τι να πω Anyway thanks for helping me;)
ΠάρηςΓ Δημοσ. 30 Μαΐου 2011 Δημοσ. 30 Μαΐου 2011 Διοτι δεν ηταν ιδια στο μεγεθος... Ειχε πει να υλοποιήσουμε αυτα;
glaer Δημοσ. 31 Μαΐου 2011 Μέλος Δημοσ. 31 Μαΐου 2011 α γι αυτο ειχε σκαλωσει ε? οκ καταλαβα.thanks.ναι εχουμε να παραδοσουμε αυτη την εργασια την Τεταρτη.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.