Socket Verwirrung bei Sockets

DerShirkTV

Mitglied
Hallo liebe Community,
ich bin gerade dabei ein bisschen mit Sockets zu programmieren, komme allerdings nicht weiter... Im Prinzip will ich einfach nur ein System, das einen Server hat, der wartet bis irgendetwas als String ankommt und einen Client, der an den Server den Befehl sendet. Mein Problem ist nur, dass der Server NUR den ersten Befehl, der vom Client geschickt wird erkennt, danach passiert nichts mehr.

Server:
Code:
public class Server {

    public static void main(String[] args) {
    ServerSocket ss = null;
       
        try {
            ss = new ServerSocket(1234);
        } catch (IOException e) {
            e.printStackTrace();
        }
       
        while (true) {
        Socket clientSocket = null;
        try{
           
                clientSocket = ss.accept();
                InputStream in = clientSocket.getInputStream();
                BufferedReader buff = new BufferedReader(new InputStreamReader(in));
               
                while (buff.ready()) {
                    System.out.println(buff.readLine());
                }
                System.out.println("Nix neues!");
                clientSocket.close();
           
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                clientSocket.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }}
    }

}

Client(Die Verbindung wird während der Ruhephase getrennt, um Recourcen zu sparen, macht das Sinn?):
Code:
public class Client {

    public static void main(String[] args) {
        Socket mySocket = null;
        try {
           
            while(true){
                String s = JOptionPane.showInputDialog("Test");
               
                mySocket = new Socket("localhost", 1234);
               
                OutputStream out = mySocket.getOutputStream();
                PrintStream ps = new PrintStream(out);
               
                ps.println(s);
               
                mySocket.close();
            }
           
           
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            try {
                mySocket.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}

Danke im Vorraus

LG Julian
 

DrZoidberg

Top Contributor
Mein Problem ist nur, dass der Server NUR den ersten Befehl, der vom Client geschickt wird erkennt, danach passiert nichts mehr.
Meinst du damit, dass nach dem ersten Befehl die Verbindung beendet wird? Du musst dich schon entscheiden, ob du die Verbindung nun beenden willst oder nicht.
Du könntest den Code so abändern. Dann wird die Verbindung erst getrennt, wenn du "end" eingibst.
Code:
public class Server {

    public static void main(String[] args) {
        ServerSocket ss = null;
        try {
            ss = new ServerSocket(1234);

            while (true) {
                Socket clientSocket = null;
                try{
                    clientSocket = ss.accept();
                    InputStream in = clientSocket.getInputStream();
                    BufferedReader buff = new BufferedReader(new InputStreamReader(in));

                    while(true) {
                      String s = buff.readLine();
                      if(s == null) break;
                      System.out.println(s);
                    }

                    System.out.println("Nix neues!");
                    clientSocket.close();
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    try {
                        clientSocket.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

public class Client {

    public static void main(String[] args) {
        Socket mySocket = null;
        try {
            mySocket = new Socket("localhost", 1234);
            OutputStream out = mySocket.getOutputStream();
            PrintStream ps = new PrintStream(out);

            while(true){
                String s = JOptionPane.showInputDialog("Test");
                if(s.equals("end")) break;
                ps.println(s);
            }
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                mySocket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C RMI allgemeine Verwirrung Netzwerkprogrammierung 6
B totale HTTP/1.0 Verwirrung bei POST Netzwerkprogrammierung 5
Jannn Socket Sockets an ein anderes Gerät weiterreichen? Netzwerkprogrammierung 8
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
B Socket Bilder verschicken via Sockets. Heap-Problem. Netzwerkprogrammierung 2
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
E Mehrere Sockets Netzwerkprogrammierung 2
N Fragen zu Sockets Client Netzwerkprogrammierung 3
A Sockets Serialisierung Netzwerkprogrammierung 1
K Threads closen und Sockets schliessen Netzwerkprogrammierung 5
H Sockets oder HTTP- Methoden? Netzwerkprogrammierung 3
T Socket Bidirektionale Verbindung mit Sockets Netzwerkprogrammierung 8
P Problem mit Datagram-Sockets Netzwerkprogrammierung 2
C Socket Datagram-Sockets mit integrierter Message Queue? Netzwerkprogrammierung 2
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
F Technologiewahl: Swing/RMI/Sockets Netzwerkprogrammierung 13
B Sockets, Threads & Plugins Netzwerkprogrammierung 7
T Verbindungsversuche über TCP Sockets von mehreren Threads führt zu Serverabsturz Netzwerkprogrammierung 2
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
F FTP Client mit Sockets - wann sagt der Server nichts mehr? Netzwerkprogrammierung 7
U Socket Abhören eines Sockets/Ports in extra Thread Netzwerkprogrammierung 8
M Socket Sockets Grundlage Netzwerkprogrammierung 25
I Socket HTTP Nachrichten über Sockets verschicken Netzwerkprogrammierung 2
D Socket Raw Sockets mit java.net.*? Bsp ICMP Netzwerkprogrammierung 7
H Komprimierte Sockets Netzwerkprogrammierung 4
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
L Sockets übergeben Netzwerkprogrammierung 4
G NIO Sockets Architektur Problem Netzwerkprogrammierung 2
S Problem bzgl. Sockets / Server-Client-Struktur Netzwerkprogrammierung 3
B Socket Was muss man bei Sockets beachten? Netzwerkprogrammierung 10
N Socket Sockets und Events Netzwerkprogrammierung 11
A Programm umschreiben von Pipes auf Sockets Netzwerkprogrammierung 12
B Paralleler Dateitransfer: Ein Client - Mehrere Sockets? Wie connecten? Netzwerkprogrammierung 16
D RMI oder Sockets Netzwerkprogrammierung 4
P Sockets +Port Forwarding = Chaos Netzwerkprogrammierung 4
clupus Exception beim Schließen eines Sockets Netzwerkprogrammierung 6
Q Thread und Sockets... Netzwerkprogrammierung 2
G Sockets und HTTP: Ende des Datenempfangs erkennen Netzwerkprogrammierung 3
J Array oder Object über Sockets Netzwerkprogrammierung 8
O Sockets -- Einsieg Netzwerkprogrammierung 3
S Sockets und gzip Netzwerkprogrammierung 8
B Nachricht über Sockets kommt nicht an Netzwerkprogrammierung 8
data89 Sockets: ein alter Hut - für Euch - für mich nicht! Netzwerkprogrammierung 10
S Wiedereinmal Sockets ;-) Netzwerkprogrammierung 15
J Ascii / Unicode bei Sockets? Netzwerkprogrammierung 2
G Datagram-Sockets für UDP-Kommunikation Netzwerkprogrammierung 2
K "Ende eines Sockets" Netzwerkprogrammierung 9
A Sockets Netzwerkprogrammierung 10
feuervogel Sockets - Lokalen Port aber nicht IP bestimmen Netzwerkprogrammierung 3
C Einfacher Filedownload mit Sockets geht nicht für pdffiles Netzwerkprogrammierung 16
E Sockets, readLine() Netzwerkprogrammierung 7
M Sockets und InputStream Netzwerkprogrammierung 8
G Verbindung über Sockets Netzwerkprogrammierung 2
S zip-files über sockets übertragen Netzwerkprogrammierung 11
G immer wieder gleiche Sockets Netzwerkprogrammierung 2
V Suche Alternative zu Sockets Netzwerkprogrammierung 3
E Problem bei Sockets/InputStream über externe Klasse Netzwerkprogrammierung 5
A Datenverlust (zuviele Daten!) über Sockets Netzwerkprogrammierung 4
AlClemento Sockets -> BufferedReader Problem Netzwerkprogrammierung 2
F Problem mit Threads und Sockets Netzwerkprogrammierung 3
B Übertragung via Sockets Netzwerkprogrammierung 12
C Dateien über Sockets versenden? Netzwerkprogrammierung 10
T Sockets Verständnisfrage: abwechelnd lesen-schreiben Netzwerkprogrammierung 4
S Habe ein Problem mit Sockets -> Client Server Netzwerkprogrammierung 2
G Strings über Sockets senden Netzwerkprogrammierung 5
P Probleme mit einem Array aus Sockets Netzwerkprogrammierung 2
Y buch: Netwerprogrammierung und Sockets Netzwerkprogrammierung 2
B Eigenes Protokoll über Sockets verschicken Netzwerkprogrammierung 4
P Welche Art von Sockets für ein Spiel? Netzwerkprogrammierung 3
C Sockets über Internet Netzwerkprogrammierung 10
K Applet - Servlet Kommunikation ohne Sockets Netzwerkprogrammierung 5
S Objekte zwischen Client und Server über Sockets senden Netzwerkprogrammierung 2
Z chat: wann http und wann sockets verwenden? Netzwerkprogrammierung 11
D Java Sockets Probs Netzwerkprogrammierung 4
N Verarbeitung nach Weiterleitung in Sockets Netzwerkprogrammierung 2
A Serialisierung über Sockets möglich? Netzwerkprogrammierung 3
M sockets (security) Netzwerkprogrammierung 2
C IRC CHAT auslesen -> Sockets/input und output Streams Netzwerkprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben