Client + Server ObjectStream

BigFish

Mitglied
Hallo Ihr,

ich habe gerade ein Programm geschrieben, indem es um Server-Client-Kommunikation geht.
Es soll möglich sein über einen Objekt-Stream Objekte von Server nach Client und umgekehrt zu verschicken.
Dazu habe ich mich der Thread-Programmierung bedient.
In der Main Methode erzeuge ich zwei (natürlich threadsichere) Queues, die an einen Thread weitergegeben werden. In diesem wird einmal der ServerListener (ClientListener auf der anderen Seite) und ServerSender (ClientSender) erzeugt, an die auch wieder die Queues weitergegeben werden.
Senden soll dann einfach so funktionieren, dass ein Objekt der Klasse Message (meine Klasse) in eine Queue gesteckt wird, aus der aus dem richtigen Thread eingelesen und über den ObjectStream geschickt wird.
Und ja das geht irgendwie nicht.

Also habe ich erstmal geguckt, ob die Threads überhaupt erzeugt werden.
Dafür habe ich einfach jeweils in den Listenern, als auch in den Sendern eine Ausgabe mit "Hallo ich bin der ServerListener (usw.)" gemacht. Nichts davon wird mir ausgegeben.
Und jetzt kommt das richtig merkwürdige: wenn ich das Serverprogramm auf einem richtigen Server per Terminal aufrufe, kann ich sogar Verbindung dazu aufbauen. Und das obwohl die Threads nicht funktionieren ?!
Hier mal beispielhaft der Code des Servers. Der des Clients ist analog:

Java:
class Spielserver {

	

	public static void main(String[] args) throws Exception {
		
		Queue<Message> sendq = new ConcurrentLinkedQueue<Message>();
		Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();

		Thread t = new Thread(new Server(6001, sendq, listenq));
		t.start();
		
		Message msg = new Message("Huhu");
		sendq.add(msg);


		
		System.out.println("laeuft");
		 
		
	}

}

Java:
public class Server implements Runnable{
	
private int port;
public Queue<Message> sendq = new ConcurrentLinkedQueue<Message>();
public Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();


	public Server(int port, Queue<Message> sendq, Queue<Message> listenq){
		this.port=port;
		this.sendq = sendq;
		this.listenq = listenq;
		
	}
	
	public void run(){
		verbinde();
	}
	
	public void verbinde(){
        ServerSocket server = null;
        try {
            server = new ServerSocket(port); 
        } catch (IOException ioe) {
            System.err.println("Der Port " + port + " kann nicht benutzt werden!");
            System.exit(1);
        }
        
        Socket client = null;
        while(true) {
            try {
                client = server.accept();
            } catch (IOException ioe) {
                System.err.println("Accept failed.");
                System.err.println(ioe);
                System.exit(1);
            }
            
            try{
            // Starte einen neuen Thread auf dem dem Klienten zugehoert wird
            	
            	System.out.println("Threads werden erzeugt: Serverebene");
            Thread listener = new Thread(new ClientListener(client, listenq));
            listener.start();
            
            Thread sender = new Thread(new ClientSender(client, sendq));
            sender.start();
            } catch(IOException ioe) {
            	System.out.println("Fehler bei Thread-Erstellung");
            	System.exit(1);
            }
        }
    }
	
}

Java:
class ClientListener implements Runnable { //DER HOERT DEM KLIENTEN ZU!
    
    private ObjectInputStream in = null;
    private Object msg=null;
    public Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();
    
  public ClientListener(Socket client, Queue<Message> listenq) throws IOException {
      
          in = new ObjectInputStream(client.getInputStream()); //Hiermit wird empfangen
  		  this.listenq = listenq;
  		  }
  
    

    public void run() {
    
    	try {
        	System.out.println("Ich bin der ClientListener!");
        	
     
            while (true) {
                try{
                msg = in.readObject();
                if(msg instanceof Message) { 
                	Message Nachricht = new Message(msg); 
                	listenq.add(Nachricht); 
                }
                else System.out.println("Keine gueltige Message");
                } catch(ClassNotFoundException cnfe) {}
               
            }
        } catch (IOException e) {
            System.err.println(e);
        }
    }

}

Java:
public class ClientSender implements Runnable{ //DER SENDET MESSAGES AN CLIENT
	
	private ObjectOutputStream oos = null;
	public Queue<Message> sendq = new ConcurrentLinkedQueue<Message>();
	
	public ClientSender(Socket client, Queue<Message> sendq) throws IOException{
		oos=new ObjectOutputStream(client.getOutputStream()); //Hiermit wird gesendet
		this.sendq = sendq;
	}
	
	
	public void run(){
		System.out.println("Ich bin der ClientSender!");
			
		while(true){
			if(!sendq.isEmpty())
			try{
				oos.writeObject(sendq.remove());			
			} catch(IOException ioe) { }
			
		}
	}

}


Stellt gerne Fragen, wenn ich das nicht korrekt dokumentiert habe. Ich werde den ganzen Tag vor dem PC campen und versuchen dieses Problem zu lösen.

Grüße
BigFish
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
schade dass du keinen Client dazupostest, beim Nachbau habe ich aber glaube ich den Fehler gefunden, gibts häufiger:
auf beiden Seiten erstellst du erst jeweils den ObjectInputStream,
dieser versucht aber bereits im Konstruktor etwas zu lesen und blockiert bis das gesendet wird,
-> beide Seiten warten, keiner sendet

Lösung: erstelle immer erst die Output-Variante, danach Input

edit: stände die Initialisierung wirklich im Thread, also nebenläufig, dann müsste es egal sein in welcher Reihenfolge die Threads gestartet werden,
Konstruktor ist aber noch nicht nebenläufig

edit:
baue Wartezeiten in deine Schleifen ein, sonst wird Mio. Mal pro Sekunde in die Liste geschaut,
100% CPU-Belastung
 
Zuletzt bearbeitet von einem Moderator:

BigFish

Mitglied
Also wenn ich dich richtig verstanden habe, dann müsste ich nur zuerst den ClientSender und DANN den ClientListener erstellen.
Das ergibt Sinn. Funktioniert aber nicht =)
Und danke für den Tipp mit den Wartezeiten!
 
S

SlaterB

Gast
inwiefern funktioniert es denn nicht?

hier mein Programm komplett,
nur Sender und Empfänger beim Server vertauscht brachte bereits die erste Ausgabe, 'Ich bin der ClientSender!' funktioniert,
damit die andere auch klappt ist natürlich beim Client der Verbindung ein ObjectOutputStream nötig, wie gesagt werden direkt gesendete Daten benötigt,
nachdem ich den ObjectOutputStream noch hinzugefügt habe erscheinen beide Listener-Ausgaben,

soweit das Ziel oder redest du schon von einem anderen Problem?
wobei ich natürlich nicht jeden simplen Schritt einzeln begleiten möchte, also sehr genau aussuchen was du fragst ;)

Java:
public class Test
{

    public static void main(String[] args)
        throws Exception
    {
        Runnable r = new Runnable()
            {
                public void run()
                {

                    Queue<Message> sendq = new ConcurrentLinkedQueue<Message>();
                    Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();

                    Thread t = new Thread(new Server(6001, sendq, listenq));
                    t.start();

                    Message msg = new Message("Huhu");
                    sendq.add(msg);
                    System.out.println("laeuft");

                }
            };
        new Thread(r).start();


        Thread.sleep(1000);

        Socket s = new Socket("localhost", 6001);
        new ObjectOutputStream(s.getOutputStream());
        Thread.sleep(1000);
    }
}


class Server
    implements Runnable
{

    private int port;
    public Queue<Message> sendq = new ConcurrentLinkedQueue<Message>();
    public Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();


    public Server(int port, Queue<Message> sendq, Queue<Message> listenq)
    {
        this.port = port;
        this.sendq = sendq;
        this.listenq = listenq;

    }

    public void run()
    {
        verbinde();
    }

    public void verbinde()
    {
        ServerSocket server = null;
        try
        {
            server = new ServerSocket(port);
        }
        catch (IOException ioe)
        {
            System.err.println("Der Port " + port + " kann nicht benutzt werden!");
            System.exit(1);
        }

        Socket client = null;
        while (true)
        {
            try
            {
                client = server.accept();
            }
            catch (IOException ioe)
            {
                System.err.println("Accept failed.");
                System.err.println(ioe);
                System.exit(1);
            }

            try
            {
                // Starte einen neuen Thread auf dem dem Klienten zugehoert wird

                System.out.println("Threads werden erzeugt: Serverebene");
                Thread sender = new Thread(new ClientSender(client, sendq));
                sender.start();
                
                Thread listener = new Thread(new ClientListener(client, listenq));
                listener.start();

            }
            catch (IOException ioe)
            {
                System.out.println("Fehler bei Thread-Erstellung");
                System.exit(1);
            }
        }
    }

}


class ClientListener
    implements Runnable
{ // DER HOERT DEM KLIENTEN ZU!

    private ObjectInputStream in = null;
    private Object msg = null;
    public Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();

    public ClientListener(Socket client, Queue<Message> listenq)
        throws IOException
    {

        in = new ObjectInputStream(client.getInputStream()); // Hiermit wird empfangen
        this.listenq = listenq;
    }


    public void run()
    {

        try
        {
            System.out.println("Ich bin der ClientListener!");


            while (true)
            {
                try
                {
                    msg = in.readObject();
                    if (msg instanceof Message)
                    {
                        Message Nachricht = new Message(msg);
                        listenq.add(Nachricht);
                    }
                    else
                        System.out.println("Keine gueltige Message");
                }
                catch (ClassNotFoundException cnfe)
                {
                }

            }
        }
        catch (IOException e)
        {
            System.err.println(e);
        }
    }

}


class ClientSender
    implements Runnable
{ // DER SENDET MESSAGES AN CLIENT

    private ObjectOutputStream oos = null;
    public Queue<Message> sendq = new ConcurrentLinkedQueue<Message>();

    public ClientSender(Socket client, Queue<Message> sendq)
        throws IOException
    {
        oos = new ObjectOutputStream(client.getOutputStream()); // Hiermit wird gesendet
        this.sendq = sendq;
    }


    public void run()
    {
        System.out.println("Ich bin der ClientSender!");

        while (true)
        {
            if (!sendq.isEmpty()) try
            {
                oos.writeObject(sendq.remove());
            }
            catch (IOException ioe)
            {
            }

        }
    }

}


class Message
{
    Object st;

    public Message(Object st)
    {
        this.st = st;
    }

}
Ausgabe:
Code:
laeuft
Threads werden erzeugt: Serverebene
Ich bin der ClientSender!
Ich bin der ClientListener!
 
Zuletzt bearbeitet von einem Moderator:

BigFish

Mitglied
Okay, dann wähle ich meine Frage mit bedacht ;-)...
Ich weiß schon wovon du redest und bin mit dem Thema vertraut!

Aber der Teil hier:

Java:
        Socket s = new Socket("localhost", 6001);
        new ObjectOutputStream(s.getOutputStream());
        Thread.sleep(1000);

sieht für mich aus wie ein Client.
Mit anderen Worten, dein Programm connected sich selbst oder seh ich das falsch?
Dann scheint es ja zu funktionieren. Ich hätte es aber gerne so, dass der Server wartet, bis eine Connection kommt.

Ist es nicht so, dass die Methode
Java:
client.accept()
innerhalb meines ersten Threads so lange wartet, bis ein Client zu dem Socket verbindet?
Wenn nein, gibt es eine Methode, die dies blockierend tut?
Ich glaube das ist das Problem oder?
 
S

SlaterB

Gast
> Mit anderen Worten, dein Programm connected sich selbst oder seh ich das falsch?
richtig, als Simulation eines beliebigen Clients,
ist doch das normalste der Welt, sonst würde ja gar nichts passieren

> Ich hätte es aber gerne so, dass der Server wartet, bis eine Connection kommt.
wie du danach schon sagst und es auch hast ist accept() dafür da, funktioniert bei mir, funktioniert bei dir (oder wie genau nicht?),
es gibt keine Alternative und kein sichtbares Problem dazu, was ist deine Frage?
welches Problem stellst du mit welchem Code fest, wo blockiert etwas zu wenig, zu viel, gar rückwirkend in der Zeit?

> Ich glaube das ist das Problem oder?
welches Problem um alles in der Welt?!

im ursprünglichen Postings ging es um zwei Listener bei aufgebauter Client-Verbindung,
die Verbindung kommt erst nach beliebig langer Wartezeit zustande, dank accept(),
dann gehts los und jetzt mit richtiger Reihenfolge/ richtiger Berücksichtigung der ObjectStreams geht das auch,
wo könnte hier ein Problem bestehen?
 

BigFish

Mitglied
Naja, so ganz läuft es immer noch nicht.
Der Client empfängt einfach die Nachrichten des Servers nicht. Andersrum habe ich es noch nicht getestet.
Das Problem liegt glaube ich in der Serialisierung.
Jedenfalls gibt es keine Exception, aber die Nachricht kommt einfach nicht an.

Client Sender // Der Sendet an den Client

Java:
public class ClientSender implements Runnable{ //DER SENDET MESSAGES AN CLIENT
	
	private ObjectOutputStream oos = null;
	public Queue<Message> sendq = new ConcurrentLinkedQueue<Message>();
	
	public ClientSender(Socket client, Queue<Message> sendq) throws IOException{
		oos=new ObjectOutputStream(client.getOutputStream()); //Hiermit wird gesendet
		this.sendq = sendq;
	}
	
	
	public void run(){
		
			
		while(true){
			if(!sendq.isEmpty())
			try{
				System.out.println("Bis zur Queue ist es gekommen!");
				oos.writeObject(sendq.remove());	
				oos.flush();
			} catch(IOException ioe) { }
			
		}
	}

}

Wenn ich mit dem Client verbinde, befüllt er brav die Queue und die Ausgabe "Bis zur Queue ist es gekommen" entsteht.

Der ServerListener // der dem Server zuhört // Sieht so aus:

Java:
class ServerListener implements Runnable { //DER HOERT DEM SERVER ZU!
    private ObjectInputStream in = null;
    private Message msg=null;
    public Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();


    public ServerListener(Socket server, Queue<Message> listenq) throws IOException {
       
    	in = new ObjectInputStream(server.getInputStream()); //Hiermit wird empfangen
    	this.listenq=listenq;
    }
    

    public void run() {    
        
        try {
             System.out.println("ServerListener");
            while (true) {
                try{
                msg = (Message) in.readObject();
                listenq.add(msg); 
                System.out.println("angekommen!");
                 /*if(msg instanceof Message) { 
                	listenq.add((Message) msg); 
                }
                else System.out.println("Keine gueltige Message"); */
                } catch(ClassNotFoundException cnfe) {} 
               
            }
        } catch (IOException e) {
            System.err.println(e);
        }
    }
}

Und bis hier kommt scheinbar die Nachricht nicht durch.

Mache ich beim Serialisieren einen Fehler?
 
S

SlaterB

Gast
ein Fehler ist immer, catch-Blöcke leer zu lassen,
ClassNotFoundException mag durchaus kommen wenn Server und Client eine unterschiedliche Vorstellung von der Message-Klasse haben,
z.B. unterschiedliches package,

geht die Übertragung von einfachen Strings?

bei mir klappts in einer Datei:
Java:
public class Test
{

    public static void main(String[] args)
        throws Exception
    {
        Runnable r = new Runnable()
            {
                public void run()
                {

                    Queue<Message> sendq = new ConcurrentLinkedQueue<Message>();
                    Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();

                    Thread t = new Thread(new Server(6001, sendq, listenq));
                    t.start();

                    System.out.println("laeuft");

                    sleep(2000);

                    System.out.println("erzeuge huhu");
                    Message msg = new Message("Huhu");
                    sendq.add(msg);

                }
            };
        new Thread(r).start();


        sleep(1000);
        System.out.println("starte Client");
        Socket s = new Socket("localhost", 6001);
        new ObjectOutputStream(s.getOutputStream());
        new Thread(new ServerListener(s, null)).start();
        sleep(1000);
        System.out.println("Ende main");
    }

    static void sleep(int ms)
    {
        try
        {
            Thread.sleep(ms);
        }
        catch (Exception e)
        {
        }
    }
}


class Server
    implements Runnable
{

    private int port;
    public Queue<Message> sendq = new ConcurrentLinkedQueue<Message>();
    public Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();


    public Server(int port, Queue<Message> sendq, Queue<Message> listenq)
    {
        this.port = port;
        this.sendq = sendq;
        this.listenq = listenq;

    }

    public void run()
    {
        verbinde();
    }

    public void verbinde()
    {
        ServerSocket server = null;
        try
        {
            server = new ServerSocket(port);
        }
        catch (IOException ioe)
        {
            System.err.println("Der Port " + port + " kann nicht benutzt werden!");
            System.exit(1);
        }

        Socket client = null;
        while (true)
        {
            try
            {
                client = server.accept();
            }
            catch (IOException ioe)
            {
                System.err.println("Accept failed.");
                System.err.println(ioe);
                System.exit(1);
            }

            try
            {
                // Starte einen neuen Thread auf dem dem Klienten zugehoert wird

                System.out.println("Threads werden erzeugt: Serverebene");
                Thread sender = new Thread(new ClientSender(client, sendq));
                sender.start();

                Thread listener = new Thread(new ClientListener(client, listenq));
                listener.start();

            }
            catch (IOException ioe)
            {
                System.out.println("Fehler bei Thread-Erstellung");
                System.exit(1);
            }
        }
    }

}


class ClientListener
    implements Runnable
{ // DER HOERT DEM KLIENTEN ZU!

    private ObjectInputStream in = null;
    private Object msg = null;
    public Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();

    public ClientListener(Socket client, Queue<Message> listenq)
        throws IOException
    {

        in = new ObjectInputStream(client.getInputStream()); // Hiermit wird empfangen
        this.listenq = listenq;
    }


    public void run()
    {

        try
        {
            System.out.println("Ich bin der ClientListener!");


            while (true)
            {
                Test.sleep(100);
                try
                {
                    msg = in.readObject();
                    if (msg instanceof Message)
                    {
                        Message Nachricht = new Message(msg);
                        listenq.add(Nachricht);
                    }
                    else
                        System.out.println("Keine gueltige Message");
                }
                catch (ClassNotFoundException cnfe)
                {
                    cnfe.printStackTrace();
                }

            }
        }
        catch (IOException e)
        {
            System.err.println(e);
        }
    }

}


class ClientSender
    implements Runnable
{ // DER SENDET MESSAGES AN CLIENT

    private ObjectOutputStream oos = null;
    public Queue<Message> sendq = new ConcurrentLinkedQueue<Message>();

    public ClientSender(Socket client, Queue<Message> sendq)
        throws IOException
    {
        oos = new ObjectOutputStream(client.getOutputStream()); // Hiermit wird gesendet
        this.sendq = sendq;
    }


    public void run()
    {
        System.out.println("Ich bin der ClientSender!");

        while (true)
        {
            Test.sleep(100);
            if (!sendq.isEmpty()) try
            {
                oos.writeObject(sendq.remove());
            }
            catch (IOException ioe)
            {
                ioe.printStackTrace();
            }

        }
    }

}


class ServerListener
    implements Runnable
{ // DER HOERT DEM SERVER ZU!
    private ObjectInputStream in = null;
    private Message msg = null;
    public Queue<Message> listenq = new ConcurrentLinkedQueue<Message>();


    public ServerListener(Socket server, Queue<Message> listenq)
        throws IOException
    {

        in = new ObjectInputStream(server.getInputStream()); // Hiermit wird empfangen
        // this.listenq = listenq;
    }


    public void run()
    {

        try
        {
            System.out.println("ServerListener");
            while (true)
            {
                Test.sleep(100);
                try
                {
                    msg = (Message)in.readObject();
                    listenq.add(msg);
                    System.out.println("angekommen!");
                    /*
                     * if(msg instanceof Message) { listenq.add((Message) msg); } else
                     * System.out.println("Keine gueltige Message");
                     */
                }
                catch (ClassNotFoundException cnfe)
                {
                    cnfe.printStackTrace();
                }

            }
        }
        catch (IOException e)
        {
            System.err.println(e);
        }
    }
}


class Message
    implements Serializable
{
    Object st;

    public Message(Object st)
    {
        this.st = st;
    }
}
Code:
laeuft
starte Client
Threads werden erzeugt: Serverebene
Ich bin der ClientSender!
ServerListener
Ich bin der ClientListener!
erzeuge huhu
angekommen!
Ende main
 

BigFish

Mitglied
Ahja, guter Tipp mit den Exceptions ;-)...
Also der Serverlistener wirft eine "ClassNotFoundException".

Das verstehe ich aber nicht, weil er ganz normal Zugriff auf die gleiche Message-Klasse wie der Server hat.
 

BigFish

Mitglied
Da ich mir nicht sicher war, ob Objekt serialisierbar ist, habe ich die Message Klasse auch einmal mit einem String gefüllt. Das geht aber auch nicht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J ObjectStream Client/Server 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
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
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
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
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
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
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
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
K C# Server - Android Client Netzwerkprogrammierung 0
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
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
E Thematik Client server 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 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
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
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
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
R Zeitliche Syncronisation Server - Client Netzwerkprogrammierung 0
S Server-Client: Image senden Netzwerkprogrammierung 2
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
J Client Server - Serialisierung Netzwerkprogrammierung 8
Luk10 Server / Client: Clients speichern! Netzwerkprogrammierung 6
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
K Client => Server Netzwerkprogrammierung 2
A ? Home-Network, Server/Client-Einrichtung Netzwerkprogrammierung 4
S Socket Server: ConnectionError vom Client erkennen Netzwerkprogrammierung 31
A Java Server - IOS Client Applikation Netzwerkprogrammierung 20
L Ratschlag zur Umsetzung einer client-server-Kommunikation Netzwerkprogrammierung 6
M RMI RMI Probleme zwischen Client und Server Netzwerkprogrammierung 5
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
N Client-Server-Datenbank Netzwerkprogrammierung 13
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
B Client/Server Connection Problem Netzwerkprogrammierung 2
S Server Client Daten hin und herschicken Netzwerkprogrammierung 2
R Server zu Client Kommunikation Netzwerkprogrammierung 11
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
T Server und Client verbinden nicht Netzwerkprogrammierung 6
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
V Socket UDP Server/Client Kommunikation sehr langsam Netzwerkprogrammierung 2
das-mo Client/Server sendet nicht Netzwerkprogrammierung 7
Z Socket Server/Client vernünftiger Verbindungsabbruch Netzwerkprogrammierung 4
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
F TCP Server/Client Netzwerkprogrammierung 14
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
Ollek Socket Sucher passende Server/Client Lösung für meine Anwendung Netzwerkprogrammierung 2
N eine klasse mit server & client Netzwerkprogrammierung 5
D RMI Gui auf client updaten basierend auf den Property Änderung des Models auf dem Server ohne polling Netzwerkprogrammierung 12
T Socket Client versucht zyklische Verbindung zum Server Netzwerkprogrammierung 4
S Socket Einfache Client/Server-Anwendung Netzwerkprogrammierung 11
F Socket Server/Client Kommunikation Netzwerkprogrammierung 4
X Problem mit Server-Client-Kommunikation Netzwerkprogrammierung 14
D Projektstruktur / Architektur (Client-Server) Netzwerkprogrammierung 9
P Socket IRC Client nicht kompatibel mit Server Netzwerkprogrammierung 30
F FTP Client mit Sockets - wann sagt der Server nichts mehr? Netzwerkprogrammierung 7
B RMI Server - Client - Aufteilung/Prinzip Netzwerkprogrammierung 11
N Server Client TCP IP Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben