Server-Client mit Thread ausstatten

Status
Nicht offen für weitere Antworten.

baba0909

Neues Mitglied
Hallo zusammen,

habe eine server client Applikation.

nun moechte ich das sich mehrere clients auf dem server arbeiten lassen kann mit Threads hab leider nicht hinbekommen.


Dankbar fuer jede hilfe.

Client

Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package primitiverclient;

import java.io.BufferedReader;
import java.io.IOException;

/**
 *
 * @author SMU
 */
import java.io.*;
import java.net.Socket;

public class Client {

    public static void main (String argv[]){

        Client client = new Client();
        try{
            client.test();
        }catch(IOException e){
            System.out.println("Fehler");
        }

    }

    void test() throws IOException {

        String ip = "localhost";
        int port = 4711;

        java.net.Socket socket = new Socket (ip,port);

        String zuSendeneNAchricht = "Hallo hier Enterprise, would you like to fuck\n";

        schreibebnachricht(socket, zuSendeneNAchricht);

        String ServerNachricht = lesenachricht(socket);

        System.out.println(ServerNachricht);
    }


    void schreibebnachricht(java.net.Socket socket, String nachricht)throws IOException{

        PrintWriter printwriter = new PrintWriter(
              new OutputStreamWriter(
                socket.getOutputStream()
              )
        );

        printwriter.print(nachricht);
        printwriter.flush();

    }

    String lesenachricht(java.net.Socket socket)throws IOException{

        BufferedReader BuffReader = new BufferedReader(new java.io.InputStreamReader(socket.getInputStream()));

        char[] buffer = new char[200];
        int anzahlzeichen = BuffReader.read(buffer,0,200);
        String nachricht = new String(buffer,0,anzahlzeichen);

        return nachricht;
    }

}


Server


Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package primitiverserver;

/**
 *
 * @author SMU
 */
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Server {
java.net.Socket Socket=null;

    public static void main (String argv[]){

        Server server = new Server();
        try{
            server.test();
        }catch(IOException e){
            System.out.println("Fehler");
        }

    }


    void test() throws IOException{
        int port =4711;
        System.out.println("Server aktiv auf Port" + port);
        java.net.ServerSocket ServerSocket = new java.net.ServerSocket(port);
        System.out.println("Warte auf Client Anmeldung");

         Socket = WarteAufAnmeldung(ServerSocket);
        if(Socket.isBound())
        {
        Thread tse=new Thread(new Runnable(){
        public void run()
        {
                    try {
                        System.out.println("Client hat sich angemeldet");
                        System.out.println("Nachricht vom Client lesen:");
                        String nachricht = LeseNachricht(Socket);
                        System.out.println(nachricht);
                        System.out.println("Antwort senden");
                        SchreibeNachricht(Socket, nachricht + "Alles OK\n");
                    } catch (IOException ex) {
                        Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
                    }
        
        }
        });
        
        tse.start();
        }


        }


   synchronized java.net.Socket WarteAufAnmeldung(java.net.ServerSocket ServerSocket) throws IOException{
    java.net.Socket Socket = ServerSocket.accept();
    notify();
    return Socket;
    }


    String LeseNachricht(java.net.Socket socket) throws IOException{
        BufferedReader objBuffReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        char[] buffer = new char[200];
        int AnzahlZeichen = objBuffReader.read(buffer,0,200); //Blockiert bis die Nachricht empfangen ist.
        String nachricht = new String(buffer,0,AnzahlZeichen);
        return nachricht;
    }

    void SchreibeNachricht(java.net.Socket socket,String Nachricht)throws IOException{
        PrintWriter objPrintWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
        objPrintWriter.print(Nachricht);
        objPrintWriter.flush();
    }

}
 

baba0909

Neues Mitglied
Sorry hab es jetzt doch hinbekommen hab ausversehen immer das selbe Server Objekt benutzt denkfehler.

DAnke trotzdem:lol::lol:
 

Geeeee

Bekanntes Mitglied
Sorry hab es jetzt doch hinbekommen hab ausversehen immer das selbe Server Objekt benutzt denkfehler.
Ähm...das erscheint mir nicht gerade die Lösung zu sein. Sobald du ein zweites ServerObjekt anlegst, fliegt dir das um die Ohren, weil der Port schon vom anderen Objekt geöffnet wurde.
Du solltest einfach das WarteAufAnmeldung (Anmerkung: CodeConventions sollteste dir auch mal anschauen) in einen (endlos) Thread packen, und wenn du die Verbindung aufgebaut hast / ein SocketObjekt bekommst, für jedes einen "HandlerThread" erzeugen, falls die Verbindung erhalten werden soll.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
K Verständnisproblem bei Server/Client Java Basics - Anfänger-Themen 3
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
D Verbesserungsvorschläge zur Struktur einer Client Server Desktop Chat App Java Basics - Anfänger-Themen 24
D Unerwartetes Verhalten bei Client Server Chat App Java Basics - Anfänger-Themen 12
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
A Client-Server Kommunikation Java Basics - Anfänger-Themen 3
S Server - für jeden Client ein Serverthread Java Basics - Anfänger-Themen 2
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
elischa Client-Server IO und Stream Steuerung ? Java Basics - Anfänger-Themen 2
I Print Client -> Server -> Client? Java Basics - Anfänger-Themen 1
I lokales Programm mit Client/Server Programm kommunizieren Java Basics - Anfänger-Themen 3
J TCP MultiThreaded Server und Client - irgendwo ist der Fehler, aber ich find ihn nicht Java Basics - Anfänger-Themen 3
K Java Client > Python Server Java Basics - Anfänger-Themen 0
S Java - Client/Server mit Stomp kurze Frage Java Basics - Anfänger-Themen 0
E Client Server Java Basics - Anfänger-Themen 12
H Einfache Client/Server-Kommunikation Java Basics - Anfänger-Themen 16
O Server Client Problem Java Basics - Anfänger-Themen 2
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
L Server pingt Client und fordert Info Java Basics - Anfänger-Themen 2
R Server/Client für Spiel Java Basics - Anfänger-Themen 2
X Applet - Client/Server Java Basics - Anfänger-Themen 2
L Bild versenden über Client/Server Java Basics - Anfänger-Themen 10
S Klassen Server und Client Java Basics - Anfänger-Themen 3
M Client - DB-Server Struktur Java Basics - Anfänger-Themen 7
U Probleme mit Server-Client implementierung Java Basics - Anfänger-Themen 5
G Server-Client Kommunikation Java Basics - Anfänger-Themen 3
Z Tomcat Server Kommunikation zu Client Applet Java Basics - Anfänger-Themen 5
D Client-Server Problem Java Basics - Anfänger-Themen 2
J Netzwerkrprogammierung Client - Server Java Basics - Anfänger-Themen 3
J Netzwerkprogrammierung Client/Server Java Basics - Anfänger-Themen 16
G ArrayListe vom Server nach Client schicken Java Basics - Anfänger-Themen 17
G JMS -> Wie Anmeldung vom Client an Server? Java Basics - Anfänger-Themen 4
I Server / Client Programm wie einen String übergeben? Java Basics - Anfänger-Themen 6
B Client - Server Verbindung über sockets mysql DB ansprechen? Java Basics - Anfänger-Themen 6
G Java Server Client Programmierung Java Basics - Anfänger-Themen 3
B Bild/Datei von einem Server an einen Client senden Java Basics - Anfänger-Themen 6
D Server/Client Java Basics - Anfänger-Themen 8
H Server Client, es kommt nichts an. Java Basics - Anfänger-Themen 5
G [Hilfe] Fileupload: Client-Server Java Basics - Anfänger-Themen 9
S Server/Client Verbindung Java Basics - Anfänger-Themen 2
G Dateidownload Client-Server (jsp) Java Basics - Anfänger-Themen 4
G Zugriff vom 'Server auf Client' Java Basics - Anfänger-Themen 4
S Client-Server Java Basics - Anfänger-Themen 18
X client soll bat auf server ansprechen Java Basics - Anfänger-Themen 7
C client/server programm fehler ! Java Basics - Anfänger-Themen 20
C string über server/client verbindung senden ? Java Basics - Anfänger-Themen 4
K [servcer/Client] Suche Server /Client Tutorial. Java Basics - Anfänger-Themen 2
FireHorses Benutzernamen aus PrivateChannel(Interaction) auf Server bringen Java Basics - Anfänger-Themen 0
HolyFUT Best Practice Architektur WebSocket Server Java Basics - Anfänger-Themen 1
S Server Java Basics - Anfänger-Themen 4
S Server Java Basics - Anfänger-Themen 3
M CS GO Server mit Java steuern Java Basics - Anfänger-Themen 3
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
B DHCP-Server Adresse ermitteln Java Basics - Anfänger-Themen 4
F Mehrere Server Sockets in einer Anwendung Java Basics - Anfänger-Themen 9
R Antwort vom Server an mehreren Clients senden Java Basics - Anfänger-Themen 3
W Netwerkprogrammierung und Http Server Java Basics - Anfänger-Themen 10
G sql server connection mit windows authentication Java Basics - Anfänger-Themen 2
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
U Erste Schritte Server will nicht übergebenes Objekt speichern Java Basics - Anfänger-Themen 5
B IP Adresse von Wildfly Server Java Basics - Anfänger-Themen 1
cezary Server läßt sich nicht starten Java Basics - Anfänger-Themen 2
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
H java.lang.NoClassDefFoundError Run as>> Run on Server Java Basics - Anfänger-Themen 2
F String zu einem Server senden Java Basics - Anfänger-Themen 4
N Server Zeit zur lokalen Zeit setzen. Java Basics - Anfänger-Themen 0
I ical - Datei auf Server ablegen und Kalender abbonieren Java Basics - Anfänger-Themen 0
T Eclipse - GlassFish Server!? Java Basics - Anfänger-Themen 1
I Java Server Faces mit Glassfish Webseite veröffentlichen Java Basics - Anfänger-Themen 4
M Input/Output tcp-Server mit statischer Parallelität Java Basics - Anfänger-Themen 7
G Multiple Clients and one Server Java Basics - Anfänger-Themen 2
F jabva 7.21 läuft nicht auf windows server 2012? Java Basics - Anfänger-Themen 9
D Socket ---> Server Socket worauf muss ich achten? Java Basics - Anfänger-Themen 2
I JDK SERVER -jar stoppen Java Basics - Anfänger-Themen 5
Screen Wie Propertydatei im Server beschreiben? Java Basics - Anfänger-Themen 7
K threaded server Java Basics - Anfänger-Themen 18
Q Datenbank nicht über separaten Server Java Basics - Anfänger-Themen 4
L Chat server Java Basics - Anfänger-Themen 4
B Java Server Side Java Basics - Anfänger-Themen 14
G JObjekte dynamisch vom Server erzeugen lassen Java Basics - Anfänger-Themen 4
A Server logs auslesen Java Basics - Anfänger-Themen 6
Z Threads, Server, GUI Java Basics - Anfänger-Themen 4
M Java class auf Server starten Java Basics - Anfänger-Themen 5
U Java-Programm auf einem Server starten Java Basics - Anfänger-Themen 33
D Java Applet Dateien auf Server auslesen? Java Basics - Anfänger-Themen 8
I Interface Comparable für Server-Item-Interface Java Basics - Anfänger-Themen 12
N Methoden Test ob Server vorhanden ist Java Basics - Anfänger-Themen 4
S .Bat Server von .java Starten Java Basics - Anfänger-Themen 5
L Server mit mehreren Clients Java Basics - Anfänger-Themen 25
M daytime-Server Port 13 Java Basics - Anfänger-Themen 2
O (von Applet) daten an Server übergeben Java Basics - Anfänger-Themen 4
W mehrere clients auf einem server Java Basics - Anfänger-Themen 2
R Server-Daten sichern/verschlüsseln Java Basics - Anfänger-Themen 10
N Applets: Objekte vom Server laden Java Basics - Anfänger-Themen 4
V pfad.exists() gilt nicht für "//server/a/xyz.jpg"? Java Basics - Anfänger-Themen 12
F SQL Server aus Umlaute werden Fragezeichen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben