Server/Client Socketprogrammierung

janus23

Mitglied
Hallo^^

Also, ich habe versucht ein Programm zu schreiben, das Bilder an einen Server sendet.
Schön und gut, da hatte ich zum ersten mal ein Problem. Der Client soll immer wissen welche Bilder auf dem Server verfügbar sind.
Da ich vorher eher wenig bis gar nichts mit Sockets gemacht habe, außer einen Chat, hatte ich das Problem das ich einmal Strings senden und empfangen musste, und einmal die ints oder bytes von dem Bild. Dazu habe ich dann ein serialisiertes Objekt erstellt, das eben Strings und Bilddaten enthalten kann. Auf der Clientseite wird dann zB das Bild eingelesen, und die Integer in dem Objekt gespeichert, an den Server gesendet und danach mittels Streams auf ein File geschrieben.
Das funktioniert ja auch ganz gut, und ich bekomme auch die Liste der Bilder die schon vorhanden sind.

Aber, ich kann iwie pro Client immer nur einen Befehl ausführen.
Ich habe diese Methode in der GUI, die mir die Daten an den Server sendet:
Java:
    private void send(Message m) {
       
            
            try {
                System.out.println("sending");
          
                
                oos.writeObject(m);
                oos.flush();

                System.out.println("sending done");
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            
        }

Beim ersten mal Aufrufen funktioniert das alles so wie das sol.
Will ich ein zweites mal etwas senden, hängt das iwie nach dem sending. Sending wird ausgegeben, und dann passiert nichts mehr.
Ich bin nicht sicher ob diese Daten jemals beim Server ankommen. Jedenfalls wird im Falle eines Uploads kein Bild erstellt.
oos ist ein ObjectOutputStream.

Ich gebe zu ich habe nicht viel Ahnung von Streams und Sockets. Iwie gab mir das Internet auch keine hilfreichen Stellungen zu diesem Thema, oder ich war zu inkompetent diese zu finden^^

Jedenfalls meine Frage, was soll ich tun?^^
Ich bin mir ja fast sicher da gibt es noch andere Möglichkeiten das senden von Strings und ints zu lösen. Und auch meine Möglichkeit diese Bilder zu übertragen scheint mir ein wenig umständlich^^

Vielen Dank für die Hile :)
 
Zurück