Netzwerkchat Problem: Mehrere Nachrichten ~ Anfängerproblem

Status
Nicht offen für weitere Antworten.

Tim S.

Neues Mitglied
Ich arbeite momentan in der Schule an einem Java projekt. Es ist das erste mal, dass ich mit Java richtig in Kontakt komme. Deswegen habe ich auch über die Suchfunktion mich nicht wirklich zurecht gefunden.

Als Ziel habe ich mir gesetzt, einen kleinen Netzwerk chat zu programmieren, bestehend aus einem Server und einem Client, da ich soetwas bereits in einem VHS-Kurs gemacht, jedoch nicht verstanden habe. Ich bin auch schon "relativ" weit. Die Verbindung kann von einem PC zum anderen hergestellt werden und auch eine Nachricht verschickt werden.
Wenn "exit eingegeben wird, beendet sich das Programm.

Nun stehe ich jedoch vor dem Problem, dass der Server nur eine einzige Nachricht auswirft und ich ratlos bin warum. ;(

Es funktioniert auch bisher nur in eine Richtung, das macht jedoch nichts. Im moment will ich erst einmal mehrere Nachrichten verschicken können.

Hier der Server:

Java:
import java.net.*;
import java.io.*;
public class SimpleServer1
{
    public static void main(String[] args)    {
        try
        {
            //Der Port 5555 wird geöffnet und auf den request gewartet...

            //...der request ist erfolgt. Ein BufferedReader liest die Daten
            //aus dem InputStream der Socket und gibt sie aus...
               String outdata;
               String Vergleich;
               Vergleich = "exit";
               ServerSocket ss = new ServerSocket(5556);
               Socket s = ss.accept();
               
            do {
                        
                BufferedReader br = new BufferedReader(
               new InputStreamReader(s.getInputStream()));
               //String outdata;
               outdata = br.readLine();

               if (outdata == null)
               {
                }
                else
                 {
                  System.out.println("Incoming message: " + outdata);
                 }

            }  while (!Vergleich.equals( outdata ));

             s.close();

            //System.out.println("Incoming message: " + br.readLine());
            //schließlich wird die Socket wieder geschlossen (!) ...
            //
       }
       catch(IOException e)
       {
          System.err.println(e.toString());
       }
    }
}

Und der Client:

Java:
import java.net.*;
import java.io.*;
public class SimpleClient1
{
    public static void main(String[] args)
    {
       String Vergleich;
       Vergleich = "exit";
       String inData;
       inData = "blubb";
   do {

        try
        {
            //selbst
              InputStreamReader inStream =
              new InputStreamReader( System.in ) ;
            BufferedReader stdin =
            new BufferedReader( inStream );

            System.out.println("Geben Sie Daten ein:");
            inData = stdin.readLine();

            //Eine Socket wird zum eigenen Rechner (localhost) aufgebaut...
            Socket s = new Socket("localhost", 5556);
            //Der PrintWriter versendet nun über den OutputStream der
            //Socket einen String...
            PrintWriter pw = new PrintWriter(s.getOutputStream());
            pw.print( inData );
            pw.flush();
            s.close();

            //String Vergleich;
            //Vergleich = "exit";

        }
        catch(IOException e)
        {
            System.err.println(e.toString());
        }
       }while (!inData.equals( Vergleich ));
             
    }
}

Das Problem ist wie gesagt, dass das mein erster Kontakt mit Java ist und ich nicht in der Lage bin mir selbst zu helfen. :bahnhof:

Vielen Dank schonmal im vorraus. ;)
 
S

SlaterB

Gast
du solltest nicht so viele Streams erstellen,
stell dir vor, der Client sendet zwei Zeilen auf einmal,

ein
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
liest dann sofort beide Zeilen in seinen internen Speicher,
eine davon gibst du aus, die andere nicht,
im nächsten Schleifendurchlauf will ein neuer BufferedReader von s.getInputStream() lesen, aber da ist keine zweite Zeile mehr, die hatte der erste BufferedReader schon gelesen

generell also nur EINEN InputStream + OutputStream auf Sockets + System.in,
in einer Schleife möglichst keine Streams definieren, es sei denn natürlich du definierst den Socket in jedem Schleifendurchlauf neu

--------

aber eigentlich sollte hier den Server gar keine Nachricht erreichen,
> outdata = br.readLine();
liest nämlich so lange, bis ein Zeilenumbruch \n erscheint,

aber der Client sendet nie einen Zeilenumbruch

> pw.print( inData );

->

pw.print( inData );
pw.println();
 

Tim S.

Neues Mitglied
Das ist doch mal was, woran ich mich weiter entlang hangeln kann. :applaus:
Vielen, vielen dank für die schnelle Antwort ...

Falls ich es nicht hinkriegen sollte, melde ich mich wieder. :)

*Wird sich jetzt in Arbeit stürzen*
 
S

SlaterB

Gast
da fällt mir auch noch auf:
Socket s = ss.accept();
findet nur einmal statt,
während der Client ständig neue Sockets eröffnet (einer reicht bestimmt), wartet der Server auf Nachrichten vom ersten Socket
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Socket Problem mit Netzwerkchat Netzwerkprogrammierung 21
M Socket Änderung an Netzwerkchat führt zu Fehlern Netzwerkprogrammierung 0
F NetzwerkChat Netzwerkprogrammierung 3
I Socket Problem mit den WebSocket Antworten der Discord API Netzwerkprogrammierung 0
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
C RMI Produzent-Verbraucher-Problem - Code review Netzwerkprogrammierung 12
B Socket Bilder verschicken via Sockets. Heap-Problem. Netzwerkprogrammierung 2
S Problem bei dem Bluetoothverbindungsaufbau Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
M Netty - TCP Problem Netzwerkprogrammierung 4
L Socket Problem mit Server Netzwerkprogrammierung 1
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
M Problem bei Socket (MultiplayerSpiel) Netzwerkprogrammierung 4
M Socket CDI, Websocket reference Problem ! Netzwerkprogrammierung 2
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
G apache httpClient Problem. Netzwerkprogrammierung 5
H Problem mit ObjectStreams Netzwerkprogrammierung 3
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
D Socket BufferedWriter/Reader Problem Netzwerkprogrammierung 1
Maxim6394 Problem mit Socks5 Implementierung Netzwerkprogrammierung 0
C Handle Connection Problem Netzwerkprogrammierung 3
E HttpUrlConnection Cookie Problem Netzwerkprogrammierung 0
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
O 4Gewinnt Multiplayer - Netzwerk Problem (TCP) Netzwerkprogrammierung 1
A Socket Socket-Problem - Object wird nicht übertragen Netzwerkprogrammierung 3
R Problem beim Programmieren eines Chatprogramms Netzwerkprogrammierung 5
E einfaches Problem: Session-Handling bei Servlets Netzwerkprogrammierung 5
G Problem mit einem FileWatcher Netzwerkprogrammierung 7
T Socket Server starten Thread Problem Netzwerkprogrammierung 12
B Client/Server Connection Problem Netzwerkprogrammierung 2
G Problem mit STATIC-Verständnis Netzwerkprogrammierung 8
S Umstellung AS400 auf Postgre - Problem beim Arbeiten mit Metadaten Netzwerkprogrammierung 2
J Facelets Include Rendered Problem Netzwerkprogrammierung 2
J Socket Problem mit C++/Java Netzwerkprogrammierung 20
P Problem mit Datagram-Sockets Netzwerkprogrammierung 2
G Socket NIO2 Problem mit AsynchronousSocketChannel beim Schließen Netzwerkprogrammierung 3
G Cookie Verwaltungs Problem nach Login auf InetSeite (Wo utma-Cookie?) Netzwerkprogrammierung 18
C Socket Problem mit ObjectInput/OutputSream Netzwerkprogrammierung 7
D RMI Problem beim shutdown von verteilter CORBA-Anwendung Netzwerkprogrammierung 6
Maxim6394 ipv6 Problem Netzwerkprogrammierung 2
Maxim6394 Proxyserver Performance Problem Netzwerkprogrammierung 11
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
C Socket Problem mit ObjectInput/OutputSream Netzwerkprogrammierung 5
B RMI und Problem mit rmic-Tool Netzwerkprogrammierung 3
C FTP storeFileStream Problem Netzwerkprogrammierung 3
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
D JavaMail - Mailsabrufen Problem (imap) Netzwerkprogrammierung 12
J HTTP Übersetzung yahoo babelfish - Zeichensatz-Problem Netzwerkprogrammierung 6
D Apache CXF, JAX-WS Problem bei Arrays - einfacher Server Netzwerkprogrammierung 2
M Problem beim Datenempfang Netzwerkprogrammierung 2
X Problem mit Server-Client-Kommunikation Netzwerkprogrammierung 14
M Problem mit Socket-Verbindung Netzwerkprogrammierung 2
N NIO Problem beim speziellen Behandeln von einzelnen Benutzern Netzwerkprogrammierung 13
D Thread problem Netzwerkprogrammierung 3
T Servlets JSP: Tomcat Problem Netzwerkprogrammierung 4
K Client - Server Problem Netzwerkprogrammierung 16
T RMI Problem Client-Server Netzwerkprogrammierung 2
P RMI Stub Problem Netzwerkprogrammierung 3
D Socket UDP Übertragungs Problem Netzwerkprogrammierung 7
I HTTP Post aus html in Java einlesen - Problem Netzwerkprogrammierung 2
I HTTP Post aus html in Java einlesen - Problem Netzwerkprogrammierung 6
D Problem mit ObjectInputStreams Netzwerkprogrammierung 10
D Socket Problem mit InputStreamReader Netzwerkprogrammierung 3
N CRC32 CheckSum Problem bei UDP Netzwerkprogrammierung 2
V Java Mail Api - IMAP Problem Netzwerkprogrammierung 6
P RMI Problem Netzwerkprogrammierung 4
I Problem bei Outputstreamerzeugung in anderer Klasse als Socket Netzwerkprogrammierung 5
S Socket Problem mit Objektübertragung Netzwerkprogrammierung 16
Shoox Reader / Writer Problem Netzwerkprogrammierung 2
S Problem mit 2 Serversockets unter Win XP Netzwerkprogrammierung 7
P Socket Problem mit Netzwerkverbindung über TCP Netzwerkprogrammierung 12
M RMI - Connection Problem Netzwerkprogrammierung 7
J Socket Client - Server Problem Netzwerkprogrammierung 4
M Socket Chat-Client-Problem Netzwerkprogrammierung 8
D Client Server Problem, Methode readline() löst SocketException "Connection reset" aus Netzwerkprogrammierung 8
E HTTP Problem beim Auslesen von Websiten Netzwerkprogrammierung 6
T Problem bei Findung der richtigen Architektur Netzwerkprogrammierung 3
AlexSpritze Authentication Problem bei WebServices Netzwerkprogrammierung 4
J Socket Problem -Proxies Netzwerkprogrammierung 2
R HTTP Problem bei Authentifizierung über (Http)UrlConnection Netzwerkprogrammierung 2
F Konzept Problem Netzwerkprogrammierung 12
G NIO Sockets Architektur Problem Netzwerkprogrammierung 2
H Neues NIO problem nachricht an alle clients Netzwerkprogrammierung 3
J Client server problem Netzwerkprogrammierung 3
S Problem bzgl. Sockets / Server-Client-Struktur Netzwerkprogrammierung 3
W RMI Problem Netzwerkprogrammierung 4
M Problem mit Server Netzwerkprogrammierung 5
N Socket Java server c# client problem Netzwerkprogrammierung 7
Y Problem mit ObjectInputStream beim lesen vom Socket Netzwerkprogrammierung 10
R RMI Hibernate Problem Netzwerkprogrammierung 4
Z RMI Problem Netzwerkprogrammierung 11
F RMI problem mit RMI Netzwerkprogrammierung 3
H Object Cast Problem nach Übertragung mit Log4j Netzwerkprogrammierung 5
H Log4j SocketAppender Problem Netzwerkprogrammierung 2
P HTTP Problem beim Download von einer Datei Netzwerkprogrammierung 4
P Problem mit JOscarLib Netzwerkprogrammierung 6
0din SMTP Client - readline problem Netzwerkprogrammierung 4
C komisches Problem / ObjectInputStream erstellt sich nicht Netzwerkprogrammierung 5
W vista / win server 2003 netzlaufwerk problem Netzwerkprogrammierung 4
W Problem mit HTTP-Dateiübertragung Netzwerkprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben