1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Client - Server Beispiel

  • Gedor@
  • 25. Oktober 2010 um 12:41
  • Unerledigt
  • Gedor@
    5
    Gedor@
    Mitglied
    Punkte
    195
    Beiträge
    27
    • 25. Oktober 2010 um 12:41
    • #1

    Ich habe ein Client - Server Paar geschrieben aber irgendwie funktionieren die wie sie sollte. Der Client kann senden aber nicht empfangen. Der Code :

    Java
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    
    package ue.cln;
    
    
    import java.io.*;
    
    
    import java.net.*;
    
    
    
    
    public class Client {
    
    
        public static void main(String[] args)throws IOException, UnknownHostException{
    
    
    
    
            System.out.println("*CLIENT*");
    
    
            Socket svSocket = null;
            PrintWriter out = null;
            BufferedReader inps = null;
    
    
    
    
            try{
    
    
                svSocket = new Socket("localhost", 49000);
    
    
                out  = new PrintWriter(svSocket.getOutputStream(), true);
    
                inps = new BufferedReader(new InputStreamReader(svSocket.getInputStream()));
    
    
            }catch(UnknownHostException e){
    
            }catch(IOException e){
    
    
            }
    
    
    
    
            // Speichere den standard Input
            InputStreamReader sIN = new InputStreamReader(System.in);
            BufferedReader standardIN = new BufferedReader(sIN);
    
    
            String toServer = null;
            String fromServer = null;
    
    
    
    
            out.println("Hallo von" + svSocket.getLocalSocketAddress());
            while((fromServer = inps.readLine())!= null ){
    
    
                System.out.println("ICH " + toServer);
    
    
                fromServer = inps.readLine();
    
                System.out.println("Server : " + fromServer);
    
    
                
    
    
                
    
    
    
    
            }
    
    
    
    
            out.close();
            inps.close();
            standardIN.close();
            svSocket.close();
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        }
    
    
    
    
    
    
    
    
    }
    Alles anzeigen
    Java
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    
    package ue.srv;
    
    
    import java.io.*;
    import java.net.*;
    
    
    
    
    public class Server {
    
    
        public static void main(String[] args) throws IOException{
    
    
            System.out.println("*SERVER*");
    
    
            ServerSocket serverSocket = null;
    
    
            try{
    
    
    
    
    
    
                serverSocket = new ServerSocket(49000);
    
    
            }catch(IOException e){
    
    
    
    
                System.err.println("Socket number  do");
                System.exit(1);
            }
    
    
    
    
            //System.out.println();
            //System.out.println("Server name " + serverSocket.toString());
     
            Socket clientSocket = null;
    
    
            try{
    
    
                clientSocket = serverSocket.accept();
                System.out.println("Verbunden mit " + clientSocket.getRemoteSocketAddress());
    
    
    
    
            }catch(IOException e){
    
    
    
    
                System.err.println("accept() failed big time");
                System.exit(1);
    
            }
    
    
    
    
            // Socket Output
            PrintWriter out = new PrintWriter(clientSocket.getOutputStream());
    
    
            //Socket Input
            BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
    
    
    
    
            String toClient, fromClient;
    
    
            //toClient = " Hallo Client";
            //out.println(toClient);
            //Input von der Console
    
    
            BufferedReader standardIn = new BufferedReader(new InputStreamReader(System.in));
    
    
            while((fromClient = in.readLine()) != null){
    
                System.out.println("Client : " + fromClient );
    
                toClient = standardIn.readLine();
    
    
    
                System.out.println(" ICH : " + toClient);
                out.println(toClient);
                if(fromClient.equals("!exit")) break;
    
    
    
    
    
    
    
    
            }
    
    
            out.close();
            in.close();
            clientSocket.close();
            serverSocket.close();
    
    
    
    
    
    
            
    
    
    
    
        }
    
    
    
    
    
    
    
    
    }
    Alles anzeigen

    Sollte ich vielleich beim Server Threads verwenden?

    Gedor@:devil:
    -------------
    [SIZE=-1]Dream as if you'll live forever, live as if you'll die today.[/SIZE]

  • Paulchen
    1
    Paulchen
    Gast
    • 25. Oktober 2010 um 13:12
    • #2

    Der PrintWriter im Server flusht die Ausgabe nicht, der vom Client schon (zweites Argument "true" beim Aufruf des Konstruktors). Kann's daran liegen?

    Ansonsten - was konkret funktioniert nicht? Irgendwelche Exceptions (Stacktrace!)? Es tut sich einfach nichts? Kommt die Nachricht beim Server an?

  • Gedor@
    5
    Gedor@
    Mitglied
    Punkte
    195
    Beiträge
    27
    • 25. Oktober 2010 um 14:14
    • #3

    Jetzt habe ich den Teil des Codes beim Client:

    Code
    [COLOR=Red]while((fromServer = inps.readLine())!= null ){
    
    
                System.out.println("ICH " + toServer);
    
    
                fromServer = inps.readLine();
    
                System.out.println("Server : " + fromServer);
    
    
                
    
    
                
    
    
    
    
            }[/COLOR]
    Alles anzeigen

    mit dem hier vertauscht :


    Code
    [COLOR=SeaGreen]while((fromServer = inps.readLine())!= null ){
    
    
                System.out.println("Server : " + fromServer);
    
    
    
    
                toServer = standardIN.readLine();
                out.println(toServer); 
                System.out.println("ICH " + toServer);
    
           }[/COLOR]
    Alles anzeigen

    Und konnte eine Nachricht von Server zu Client senden und das ist alles. Das Problem ist dass das nicht kontinuierlich funktioniert. Ich Sende vom Server zum Client, er empfängt die Nachricht und zeigt sie, dann sende ich ein zum Server aber er empfäng sie nicht, es ist als sieht er die Nachricht überhaupt nicht.

    Gedor@:devil:
    -------------
    [SIZE=-1]Dream as if you'll live forever, live as if you'll die today.[/SIZE]

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 2 Besucher

Rechtliches

Impressum

Datenschutzerklärung