Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Allgemeine Java-Programmierung > 2 Probleme: Serververbindung /if-Abfragen beim Streamempfang
Antwort
 
Themen-Optionen
Alt 25.01.2005, 23:02   Nach oben    #1
Javaner No.1
Gast
 
Beiträge: n/a
Standard 2 Probleme: Serververbindung /if-Abfragen beim Streamempfang

Hi folks! Diesmal muss ich ne Client/Server-Anwendung mit Sockets machen! Nun habe ich folgende Probleme!

Erstens wie bekomme ich es hin, dass ich mehrere Aktionen hintereinander in Richtung Server machen kann! Momentan führt er eine Aktion aus! Wenn ich dann die nächste machen will, kommt ein ganzer Rattenschwanz von Fehlern!

Die Source dazu sieht so aus:


Java Code:
  1. [...]
  2.     class actionListener implements ActionListener
  3.     {
  4.         public void actionPerformed (ActionEvent eAction)
  5.         {
  6.         if (eAction.getActionCommand() == "Neue Datenbank anlegen")
  7.             {
  8.                 try
  9.                 {
  10.                     iStatus = 1;
  11.                     ServerVerbindungHerstellen(iStatus);
  12.                 }
  13.                 catch (Exception ex02)
  14.                 {
  15.                     ex02.printStackTrace();
  16.                 }
  17.             }
  18.             if (eAction.getActionCommand() == "Neue Tabelle anlegen")
  19.             {
  20.                 try
  21.                 {
  22.                     iStatus = 2;
  23.                     ServerVerbindungHerstellen(iStatus);
  24.                 }
  25.                 catch (Exception ex02)
  26.                 {
  27.                     ex02.printStackTrace();
  28.                 }
  29.             }
  30.             if (eAction.getActionCommand() == "Neuen Tabelleneintrag anlegen")
  31.             {
  32.                 try
  33.                 {
  34.                     iStatus = 3;
  35.                     ServerVerbindungHerstellen(iStatus);
  36.                 }
  37.                 catch (Exception ex02)
  38.                 {
  39.                     ex02.printStackTrace();
  40.                 }
  41.             }
  42.             if (eAction.getActionCommand() == "Beenden")
  43.             {
  44.                 try
  45.                 {
  46.                     iStatus = 10;
  47.                    
  48.                     ServerVerbindungHerstellen(iStatus);
  49.                 }
  50.                 catch (Exception ex02)
  51.                 {
  52.                     ex02.printStackTrace();
  53.                 }
  54.                 System.exit(0);
  55.             }
  56.         }
  57.     }
  58.     public static void ServerVerbindungHerstellen(int iStatus)
  59.        throws IOException {
  60.  
  61.      // Passing null to getByName() produces the
  62.      // special "Local Loopback" IP address, for
  63.      // testing on one machine without a network:
  64.  
  65.      InetAddress addr =
  66.        InetAddress.getByName(null);
  67.  
  68.      // Alternatively, you can use
  69.      // the address or name:
  70.      // InetAddress addr =
  71.      //    InetAddress.getByName("127.0.0.1");
  72.      // InetAddress addr =
  73.      //    InetAddress.getByName("localhost");
  74.  
  75.     System.out.println("addr = " + addr);
  76.      Socket socket =
  77.        new Socket(addr, server.Server.PORT);
  78.  
  79.      // Guard everything in a try-finally to make
  80.      // sure that the socket is closed:
  81.  
  82.     try {
  83.        System.out.println("socket = " + socket);
  84.  
  85.        BufferedReader in =
  86.          new BufferedReader(
  87.            new InputStreamReader(
  88.              socket.getInputStream()));
  89.  
  90.        // Output is automatically flushed
  91.        // by PrintWriter:
  92.  
  93.     PrintWriter out =
  94.          new PrintWriter(
  95.            new BufferedWriter(
  96.              new OutputStreamWriter(
  97.                socket.getOutputStream())),true);
  98.  
  99.     out.println(iStatus);
  100.     String str = in.readLine();
  101.     System.out.println(str);
  102.  
  103.  
  104.            out.println("END");
  105.      } finally {
  106.        //System.out.println("schliesse ...");
  107.        //socket.close();
  108.      }
  109.     }
  110. }

Das zweite Problem, dass ich habe ist folgendes! Ich will per if-Abfrage je nach zum Server gesendetem String auf dem Server ne andere Aktion durchführen! Leider scheint er die if-Abfrage zu übergehen! Keine Ahnung warum!

Die Source dazu sieht so aus:

Java Code:
  1. [...]
  2.             while (true)
  3.             {
  4.                  String str = in.readLine();
  5.                  if (str.equals("END") || str.equals("10"))
  6.                  {
  7.                     break;
  8.                  }
  9.                  else if (str.equals("1"))
  10.                  {
  11.                     System.out.println("Neue Datenbank angelegt");
  12.                  }
  13.                  else if (str.equals("2"))
  14.                  {
  15.                     System.out.println("Neue Tabelle angelegt");
  16.                  }
  17.                  else if (str.equals("3"))
  18.                  {
  19.                     System.out.println("Neuer Tabelleneintrag angelegt");
  20.                  }
  21.                  System.out.println("Echoing: " + str);
  22.                  out.println(str);
  23.             }
  24. [...]

Wie immer danke ich euch schon mal im Voraus!
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.01.2005, 23:15   Nach oben    #2
Javaner No.1
Gast
 
Beiträge: n/a
Standard

Also, dass Problem mit der if-Abfrage konnte ich mittlerweile doch selber lösen! Aber das andere besteht noch!
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.01.2005, 01:07   Nach oben    #3
Fuzzy
Gast
 
Beiträge: n/a
Standard

... ich verstehe Dein Programm nicht ganz....

Die Methode "ServerVerbindungHerstellen" öffnet pro Aufruf einen Socket, indem der Socket neu angelegt wird, aber das Schließen des Socket per close() ist auskommentiert. Wieso schließt Du den Socket eigentlich nicht, wenn Du immer einen neuen anlegst? (ach ja, um es nicht zu vergessen: Methodenaufrufe in Java sollten immer mit einem Kleinbuchstaben beginnen, aber das nur am Rande)

Abgesehen davon könnte der Fehler auch im Server-Code zu finden sein...
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:44 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44