Mini Client-Server-Anwendung funktioniert nicht

Cihan38

Mitglied
Hallo Zusammen,
derzeit lerne ich mit Client-Server-Anwendungen umzugehen, da ich so etwas vorher noch nicht gemacht habe.

Zur Übung habe ich eine mini Anwendung programmiert. Allerdings funktioniert es zur Zeit nicht so ganz. Ich vermute, dass das Problem bei meinem Server liegt.

Bei meinem Programm schickt der Client eine Nachricht aus einem Textfeld(gui) an den Server. Der Server soll die Nachricht an ein anderen Textfeld senden. Es soll quasi ein Gruppenchat sein.

Die Client Seite funktioniert, aber mein Server macht nicht das, was er soll. Ich hoffe jemand kann mir helfen.

Vielen Dank im Voraus


Client
import [...]

public class SCSClient extends JFrame implements ActionListener {

//Server Attribute
InputStream is=null;
OutputStream os=null;
PrintWriter out;
Scanner in;

//Gui attribute
JButton buttonOK;
feld panel= new feld();


public SCSClient(String host,int port) throws UnknownHostException, IOException{
//GUI-Abschnitt
this.setTitle("Client");
this.setSize(500, 500);
this.setVisible(true);
BorderLayout bla= new BorderLayout();
this.setLayout(bla);
buttonOK = new JButton("OK");
buttonOK.addActionListener(this);
panel.add(buttonOK);
this.add(panel);
this.setVisible(true);


//Serververbindung
Socket server = new Socket(host,port);
this.is=server.getInputStream();
this.os=server.getOutputStream();

out = new PrintWriter(os,true);
in = new Scanner(is );


}


@Override
public void actionPerformed(ActionEvent es) {

if(es.getSource()==buttonOK){
System.out.println(panel.tfName.getText()); //Diese Zeile wurde zum testen erstellt
out.println("hallo"); //wir schicken unsere Nachricht an den Server

}
}
public static void main(String[] args) throws UnknownHostException, IOException {
SCSClient kunde = new SCSClient("localhost",6000);

}
}


Server
import[...]
public class SCSServer {

//Server-Attribute
Socket client=null;
InputStream is;
OutputStream os;
PrintWriter out;
Scanner in;

//Gui panel
feld panel=new feld();

public SCSServer(int port){

try {
ServerSocket server=new ServerSocket(port);

while(true){
client=server.accept();
this.handle(client);
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private void handle(Socket client) {
try {

//Streams initialisieren
this.is=client.getInputStream();
this.os=client.getOutputStream();
out = new PrintWriter(os,true);
in = new Scanner(is );

//Das was der client in das gelbe Textfeld geschrieben hat, soll drunter geschrieben werden.

String antwort = in.nextLine(); //Eingabe wird zwischengespeichert

panel.antwort.setText(antwort);


} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public static void main(String[] args){
new SCSServer(6000);
}

}



feld
public class feld extends JPanel {
JTextField tfName;
JTextField antwort;

public feld(){
this.setPreferredSize(new Dimension(500,300));
this.setBackground(Color.GRAY);

JLabel label = new JLabel("Ihre Nachricht");
this.add(label);

tfName= new JTextField(20); //Nachricht des einzelnen Clients
antwort= new JTextField(30); // Nachrichten aller Clients die der Server schickt

tfName.setBackground(Color.YELLOW);
this.add(tfName);
this.add(antwort);
}

}



cleardot.gif
 

dayaftereh

Top Contributor
Hey, kannst du deinen Code bitte in den Code Formatierungsblock setzten ....

EDIT

Dein Server wartet auf einen Newline mit in.readLine(). Aber dein Client schickt einen String ohne Newline am Ende.

Java:
out.println("hallo\n");
 

Cihan38

Mitglied
Ja natürlich. Sorry bin neu hier :)
Vielen Dank


Client
Java:
public class SCSClient extends JFrame implements ActionListener {

    //Server Attribute
    InputStream is=null;
    OutputStream os=null;
    PrintWriter out;
    Scanner in;
  
    //Gui attribute
    JButton buttonOK;
    feld panel= new feld();

   
    public SCSClient(String host,int port) throws UnknownHostException, IOException{
        //GUI-Abschnitt
        this.setTitle("Client");
        this.setSize(500, 500);
        this.setVisible(true);
        BorderLayout bla= new BorderLayout();
        this.setLayout(bla);
        buttonOK = new JButton("OK");
        buttonOK.addActionListener(this);
        panel.add(buttonOK);
        this.add(panel);
        this.setVisible(true);

          
            //Serververbindung
        Socket server = new Socket(host,port);
        this.is=server.getInputStream();
        this.os=server.getOutputStream();
      
          out = new PrintWriter(os,true);
          in  = new Scanner(is );

      
    }


    @Override
    public void actionPerformed(ActionEvent es) {

        if(es.getSource()==buttonOK){
            System.out.println(panel.tfName.getText());   //Diese Zeile wurde zum testen erstellt
            out.println("hallo");        //wir schicken unsere Nachricht an den Server
                      
        }
    }

  
  
    public static void main(String[] args) throws UnknownHostException, IOException {
            SCSClient kunde = new SCSClient("localhost",6004);
  
    }
  
  
  
  
}


Server
Java:
public class SCSServer {

    //Server-Attribute
    Socket client=null;
    InputStream is;
    OutputStream os;
    PrintWriter out;
     Scanner in;
   
     //Gui panel
     feld panel=new feld();
  
   
    public SCSServer(int port){
      
        try {
            ServerSocket server=new ServerSocket(port);
          
            while(true){
                client=server.accept();
                this.handle(client);
            }
          
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

  

    private void handle(Socket client) {
        try {
          
            //Streams initialisieren
            this.is=client.getInputStream();
            this.os=client.getOutputStream();
              out = new PrintWriter(os,true);
              in  = new Scanner(is );            
            
              //Das was der client in das gelbe Textfeld geschrieben hat,soll in das Feld dadrunter geschrieben werden
              String antwort = in.nextLine();  //Eingabe wird zwischengespeichert
          
              panel.antwort.setText(antwort);
          
          
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
      
    }
  
    public static void main(String[] args){
     new SCSServer(6004);
    }

}


feld

Java:
public class feld extends JPanel  {
     JTextField tfName;
     JTextField antwort;

    public feld(){
         this.setPreferredSize(new Dimension(500,300));
         this.setBackground(Color.GRAY);
       
         JLabel label = new JLabel("Ihre Nachricht");
         this.add(label);
       
         tfName= new JTextField(20);         //Nachricht des einzelnen Clients
         antwort= new JTextField(30);        // Nachrichten aller Clients die der Server schickt

         tfName.setBackground(Color.YELLOW);
         this.add(tfName);
         this.add(antwort);
    }
  
}
 

Cihan38

Mitglied
Hallo,

eigentlich sollte da nicht "hallo" sondern folgendes stehen

Code:
out.println(panel.tfName.getText()+"\n");
out.flush();


Irgendwie funktioniert es trotzdem nicht, wenn ich es ausführe. Es wird nichts im unteren Textfeld übernommen.
 

funlow

Mitglied
Mal kurz ne Frage: Du benutzt ja den ganz normalen OutputStream geht das überhaupt ?
Hab damit gestern auch ein bisschen rumprobiert und bei mir sagt der immer das sei nicht möglich weil OutputStream ne abstrakte Klasse ist.

Ansonsten du sagst deine Clientseite funktioniert... kommt denn vom Client was beim Server an oder nicht ?
Ich hab nämlich gestern mit der .write() Methode gearbeitet damit der InputStream was empfängt funktioniert das überhaupt mit der println() Methode ( Kenn mich da selber nicht sonderlich gut aus muss ic dazu sagen )
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JavaWolf165 Mini-Datenbank durch Link Netzwerkprogrammierung 6
N Eigenen mini webbrowser fernsteuern Netzwerkprogrammierung 1
R Mini-Chat löst BindException aus Netzwerkprogrammierung 7
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
B Axis2 Webservice mit Client Zertifikat Authentifizierung Netzwerkprogrammierung 3
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
T Jetty mit Client-Zertifikat nur bei spezifischer URL Netzwerkprogrammierung 1
J Einlesen von Servernachrichten von TCP-Client Netzwerkprogrammierung 17
J Client-Server und SOAP Netzwerkprogrammierung 23
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
T Client zu Client Kommunikation Netzwerkprogrammierung 2
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
ruutaiokwu ständig "sender address rejected: improper use of smtp" bei smtp-client Netzwerkprogrammierung 4
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Chatserver/-client - Code stoppt bei readUTF() Netzwerkprogrammierung 7
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
L Zugriffprobleme Client - Webservice AspenTechnology Netzwerkprogrammierung 0
A Client Client Übertragung Netzwerkprogrammierung 12
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
K Socket Netty Client wirft Fehler! Netzwerkprogrammierung 3
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
U Socket Client mit hash authentifizieren Netzwerkprogrammierung 3
F HTTP HTTP Rest Client mit TLS1.2 und selbst signiertem Zertifikat Netzwerkprogrammierung 2
P Server als Client nutzen Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
J Client - Serversocket Netzwerkprogrammierung 1
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
N Fragen zu Sockets Client Netzwerkprogrammierung 3
F Extasys TCp Client extends Funktion Netzwerkprogrammierung 0
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
O Client zwischen XML und JSON auswählen lassen Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
A Socket Wie ein einfacher Multithreads Service mit Telnet als Client mit Observable/Observer gelöst.... Netzwerkprogrammierung 0
K C# Server - Android Client Netzwerkprogrammierung 0
T Application Client NullPointerExc Netzwerkprogrammierung 7
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
H HTTP REST Jersey - PUT-Beispiel von Client senden Netzwerkprogrammierung 0
J Sichere Kommunikation bei Server Client Netzwerkprogrammierung 3
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
M Theoretische Frage zu Server - Client Netzwerkprogrammierung 2
P HTTP Server / Client Netzwerkprogrammierung 1
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
X RMI: Woher kennt der Client das Schnittstellen-Interface? Netzwerkprogrammierung 2
E Thematik Client server Netzwerkprogrammierung 2
D UDP Client empfängt nichts Netzwerkprogrammierung 2
D Client/Server per Crossover Lan Kabel Netzwerkprogrammierung 1
S Client Server Connection Netzwerkprogrammierung 4
V erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw. Netzwerkprogrammierung 4
S Client Anwendung mit zentraler SQL-Datenbank Netzwerkprogrammierung 3
N Client Identifikation eines Servers Netzwerkprogrammierung 1
S Sichere Server/Client Architektur Netzwerkprogrammierung 1
D Chat Server/mehre Client Netzwerkprogrammierung 9
I Server+Client Netzwerkprogrammierung 3
N Client am Server abmelden Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
D SSH Client Netzwerkprogrammierung 7
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
B TCP Client Android Netzwerkprogrammierung 3
Athena Grundsatzfragen zu Client-Server-Architektur / Matchmaking Netzwerkprogrammierung 1
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
F Client Server DB Netzwerkprogrammierung 0
A Verständnisfrage Multi-Threaded Client/Server Netzwerkprogrammierung 5
F Tipps zum Thema Server/Client vie SOAP Netzwerkprogrammierung 0
OnDemand Ist Client noch angemeldet? Netzwerkprogrammierung 7
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
D Socket UDP Client reagiert nicht auf spontane Meldungen Netzwerkprogrammierung 5
R Zeitliche Syncronisation Server - Client Netzwerkprogrammierung 0
S Server-Client: Image senden Netzwerkprogrammierung 2
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
M Client sendet nur, wenn das Socket geschlossen wird Netzwerkprogrammierung 53
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
S Socket (client) verbindet nicht Netzwerkprogrammierung 6
V Templates für Java Client rabbitmq Netzwerkprogrammierung 4
J Client Server - Serialisierung Netzwerkprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben