Reader/ Writer werden nicht geschlossen

flopps

Mitglied
Hallo Leuts,

habe ein kleines Programm geschrieben wo der Client dem Server dauerhaft eine Nachricht schicken soll, aber das macht er irgendwie nur einmal und danach ist schluss. Ich vermute das entweder Reader oder der Writer nicht richtig geschlossen werden bin mir aber nicht sicher. Vielleicht könnt ihr mir ja helfen.
Hier die 2 Klassen zum Server und zum Client:

Java:
public class Server
{
    ServerSocket server;
    BufferedReader reader;
    PrintWriter writer;
    Socket client;
    
    public static void main(String args[])
    {
        Server s = new Server();
    }
    
    public Server()
    {
        try
        {
            server = new ServerSocket(6666);
            System.out.println("Server gestartet");
            
            client = server.accept();
            System.out.println("neuer Client");
        }
        catch (IOException ex){}
        
        declareStreamsWriterReader();
        
        new Thread(new Action()).start();
    }
    
    private void declareStreamsWriterReader()
    {
        try
        {
            reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
            writer = new PrintWriter(client.getOutputStream());
        }
        catch (IOException ex){}
    }
    
    public class Action implements Runnable
    {
        @Override
        public void run()
        {
            String s;
            
            while(true)
            {
                s = null;
                
                try
                {
                    if((s = reader.readLine()) != null)
                    {
                        System.out.println(s);
                        
                        writer.write(s + "\n");
                        writer.flush();
                    }
                }
                catch (IOException ex){}
                
                writer.close();
                try
                {
                    reader.close();
                }
                catch (IOException ex){}
            }
        }
    }
}

Java:
public class Client
{
    Socket client;
    BufferedReader reader;
    PrintWriter writer;
    
    public static void main(String args[])
    {
        Client c = new Client();
    }
    
    public Client()
    {
        try 
        {
            client = new Socket("localhost", 6666);
            System.out.println("Client gestartet");
        } 
        catch (UnknownHostException ex){} 
        catch (IOException ex) {}
        
       declareStreamsWriterReader();
       
       new Thread(new Action()).start();
    }
    
    private void declareStreamsWriterReader()
    {
        try
        {
            reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
            writer = new PrintWriter(client.getOutputStream());
        }
        catch (IOException ex){}
    }
    
    public class Action implements Runnable
    {
        @Override
        public void run()
        {
            int count = 0;
            String s;
            
            while(true)
            {
                writer.write("hallo " + count + "\n");
                writer.flush();
                
                count++;
                
                s = null;
                
                try
                {
                    if((s = reader.readLine()) != null)
                    {
                        System.out.println(s);
                    }
                }
                catch (IOException ex){}
                
                writer.close();
                try
                {
                    reader.close();
                }
                catch (IOException ex){}
            }
        }
    }
}
 

Thallius

Top Contributor
Wenn ich das richtig überflogen haben, dann machst Du den reader/writer vor der While Schleife auf und in der While Schleife wieder zu. Wie soll das gehen?

Gruß

Claus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Shoox Reader / Writer Problem Netzwerkprogrammierung 2
A Socket-Anwendung (BufferedWriter/Reader liest nicht aktuellen Wert) Netzwerkprogrammierung 6
D Socket BufferedWriter/Reader Problem Netzwerkprogrammierung 1
Y HTTP Google Reader API Kommunikation Netzwerkprogrammierung 3
B Socket Thread handling / Reader init Netzwerkprogrammierung 8
S Socket Reader und Binärdaten Netzwerkprogrammierung 2
V Buffered Reader Bug! Netzwerkprogrammierung 7
D Frage: Buffered Reader --> Wie komm ich an die Daten (Byt Netzwerkprogrammierung 3
G Writer oder Stream bei Socket? Netzwerkprogrammierung 2
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
S Umlaute wie ê in sms werden als ? zeichen dargestellt Netzwerkprogrammierung 4
T DataOutputStream Nachrichten werden fehlerhaft gesendet. Netzwerkprogrammierung 1
E JCIFS - Smb - Datei kann nur von einem Benutzer bearbeitet werden Netzwerkprogrammierung 1
F Java Server Scanner oder InputStream kann nicht gelsesen werden! Netzwerkprogrammierung 6
X Daten können nicht sofort empfangen werden Netzwerkprogrammierung 1
B Methoden und Konstruktoren von Java.net package werden nicht geladen Netzwerkprogrammierung 2
A Socket ASCii Zeichen werden nicht per udp übermittelt. please help . Netzwerkprogrammierung 6
H HTTP Header Response kann nicht ausgelesen werden Netzwerkprogrammierung 4
V Socket Objekte werden nicht aktualisiert Netzwerkprogrammierung 2
J Nach Dateiversand werden keine Nachrichten mehr übertragen Netzwerkprogrammierung 11
S Servlet - Datei kann nicht gelöscht werden Netzwerkprogrammierung 12
Semox HTTP Webserver: Externe Dateien werden nicht verwendet. Netzwerkprogrammierung 10
T Laufen Objekte, die vom Cajo-Server geliefert werden, lokal auf dem Client? Netzwerkprogrammierung 4
P Server/Client Daten empfangen, wenn Daten gesendet werden Netzwerkprogrammierung 9
OliverKroll Wie kann mit Java und CORBA der Ausfall des Servers abgefangen werden ? Netzwerkprogrammierung 9
D Daten, die mit PHP erzeugt werden, mit Java auslesen Netzwerkprogrammierung 8
D Lange Zeilen in Emails werden umgebrochen Netzwerkprogrammierung 2
A Wie werden Daten versendet? "Crashcode" Netzwerkprogrammierung 4
G CORBA Klassen werden nicht erkannt. Netzwerkprogrammierung 7

Ähnliche Java Themen


Oben