Versenden von Objekt

Status
Nicht offen für weitere Antworten.
H

Heraklit

Gast
Hi,
ich arbeite zur Zeit an einem Client-Server Programm, das folgendermaßen aufgebaut ist:
Ein Server verschickt ein Integer-Array an eine beliebige Anzahl von Clients, die dann aus dem Array, die Integers auslesen.

Der Server sieht bisher folgendermaßen aus:

Code:
public class TServer extends Thread
{

        protected Socket socket;

        public TServer (Socket s)
        {
                socket = s;
        }

        public void run ()
        {
                try
                {
                        int[] a = {1,2,3};
                        Object b = a;

                        PrintWriter os = new PrintWriter (new OutputStreamWriter (socket.getOutputStream ()), true);
                        os.println(b);
                }
                catch (IOException e)
                {
                        System.err.println(e);
                }

        }

        public static void main (String [] args)
        {
                try
                {
                        ServerSocket serverSocket = new ServerSocket (2000);

                        while (true)
                        {
                                TServer connection = new TServer (serverSocket.accept ());
                                connection.start ();
                        }
                }
                catch (IOException e)
                {
                        System.err.println (e);
                }
        }
}

Nun weiß ich aber nicht wie man im Client, die Integers aus dem Stream bekommt, nachdem man sie mit printwriter (im Server) hineingeschrieben hat. ReadLine() funktioniert ja hier wohl nicht! Mein bisheriger Client hat folgende Form:

Code:
import java.io.*;
import java.net.*;

public class TClient
{
        public static void main (String [] args)
        {

                try
                {
                        Socket socket = new Socket ("localhost", 2000);

                        //BufferedReader is = new BufferedReader (new InputStreamReader (socket.getInputStream ()));
                       
                        //???????????
                }
                catch (UnknownHostException e)
                {
                        System.err.println (e);
                }
                catch (IOException e)
                {
                        System.err.println (e);
                }
        }
}
Wie ist der Client also zu implementieren, damit man das zunächst in den Strom reingeschriebene Objekt (vgl. Server) wieder erhält (im Client)??

Außerdem möchte ich noch, dass die Daten an alle verbundenen Clients simultan übertragen werden! D.h. wenn der Server was verschickt, sollen dies alle Clients zur gleichen Zeit erhalten! Wie kann man dies an dem vorgestellten code verwirklichen?

Danke schön für eure Antwort
 
H

Heraklit

Gast
Hi,
ich habe jetzt das erste Problem gelöst. Jetzt zählt das Problem von 1 bis 10 im Sekundentakt. Aber wie kann man das Programm modifizieren, dass die selbe Zahl zur selben Zeit ausgegeben wird?

Hier der neue Code:

Code:
import java.io.*;
import java.net.*;

public class TClient extends Thread
{
        public static void main (String [] args)
        {
                String line;

                try
                {
                        Socket socket = new Socket ("localhost", 2000);

                        ObjectInputStream a= new ObjectInputStream((socket.getInputStream()));
                        sleep(1000);

                        Integer[] b = (Integer[]) a.readObject();

                        for(int i=0; i <10; i++)
                        {
                                System.out.println(b[i].intValue());
                                sleep(1000);
                        }


                        socket.close ();
                }
                catch(Exception e){}
        }
}

Code:
import java.io.*;
import java.net.*;

public class TServer extends Thread
{

        protected Socket socket;

        public TServer (Socket s)
        {
                socket = s;
        }

        public void run ()
        {

                Integer[] a = new Integer[10];

                try
                {

                        for(int i=0;i<10;i++)
                        {
                                a[i] = new Integer(i);
                        }

                        System.out.print ("connection accepted [");
                        System.out.print (socket.getInetAddress ().getHostAddress ());
                        System.out.print ("]\n");

                        ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream ());
                        out.writeObject(a);
                }
                catch (IOException e)
                {
                        System.err.println(e);
                }

        }

        public static void main (String [] args)
        {
                try
                {
                        ServerSocket serverSocket = new ServerSocket (2000);

                        while (true)
                        {
                                TServer connection = new TServer (serverSocket.accept ());
                                connection.start ();
                        }
                }
                catch (IOException e)
                {
                       System.err.println (e);
                }
        }
}
 
S

stev.glasow

Gast
Mit System.currentTimeMillis() kannst du dir die aktuelle Systemzeit holen und entsprechend die aktuelle Sekunde ausrechnen:
int aktS = (int)(System.currentTimeMillis() / 1000 % 60);
und dann braucht du halt nur doch in deiner Schleife aktS zu i hinzuaddieren.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Objekt Felder versenden Netzwerkprogrammierung 5
H Socket Kann ein Socket server 2 dimensionale Arrays empfangen und versenden? Netzwerkprogrammierung 3
T E-Mail versenden. Netzwerkprogrammierung 8
L Versenden von "Bildschirm" Netzwerkprogrammierung 2
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
L Email versenden mit Java funktioniert nicht, Fehlermeldungen: MessagingException & SocketException Netzwerkprogrammierung 10
precoc String Array versenden Netzwerkprogrammierung 7
B Viele verschiedene E-Mails an unterschiedliche Empfänger schnell versenden? Netzwerkprogrammierung 8
S Email via Googlemail versenden Netzwerkprogrammierung 17
M Mail über Exchange versenden Netzwerkprogrammierung 13
P Dateiennamen versenden Netzwerkprogrammierung 4
P Mit Java Javascript-Anfrage versenden Netzwerkprogrammierung 4
T Objekte im NIO unblocking mode versenden Netzwerkprogrammierung 11
N String als byte Array über Socket versenden Netzwerkprogrammierung 8
N Socket File über Socket vom Server an Client versenden Netzwerkprogrammierung 15
M Socket Datei über Socket versenden Netzwerkprogrammierung 5
C An WebDAV einen "MKCOL" Befehl versenden Netzwerkprogrammierung 4
X Versenden von Objekten braucht zu lange Netzwerkprogrammierung 5
N Technologie zum versenden von Objects Netzwerkprogrammierung 5
Kr0e Versenden von Daten übers Netzwerk Netzwerkprogrammierung 30
R Versenden einer MIME-Datei per E-Mail [solved] Netzwerkprogrammierung 5
N E-mail versenden Netzwerkprogrammierung 4
B Wie HTTP GET/POST Anfrage versenden? Netzwerkprogrammierung 7
T SWT Image versenden Netzwerkprogrammierung 2
T Einzelne Bits per Socket versenden Netzwerkprogrammierung 16
F Link erzeugen und versenden Netzwerkprogrammierung 4
O Wert versenden? Netzwerkprogrammierung 12
G Datein versenden funktioniert nicht ! Netzwerkprogrammierung 19
A Konflikt: Blocking und Non-Blocking bei Objekte versenden Netzwerkprogrammierung 4
O Über Socket Array versenden Netzwerkprogrammierung 5
G Bytes versenden Netzwerkprogrammierung 9
G Datei über ObjectInputStream versenden Netzwerkprogrammierung 8
B Strings versenden | Nur 1 Client Netzwerkprogrammierung 6
P Objekte über DatagramSocket versenden Netzwerkprogrammierung 12
V Kann keine DatagramPackets versenden von einem Jar Archiv Netzwerkprogrammierung 4
J Problem beim versenden von eigenen Objekten über RMI Netzwerkprogrammierung 2
S Dateien versenden Netzwerkprogrammierung 16
C Dateien über Sockets versenden? Netzwerkprogrammierung 10
F IP "versenden" Netzwerkprogrammierung 6
N *.* Dateien versenden im Lan Netzwerkprogrammierung 5
L JavaMail: Versenden von mails funktioniert nicht Netzwerkprogrammierung 7
P Array per Socketverbindung versenden Netzwerkprogrammierung 2
O Sms versenden Netzwerkprogrammierung 5
T Dateien wia P2P Connection versenden Netzwerkprogrammierung 2
S E-Mails versenden. Netzwerkprogrammierung 10
D Bits über UDP versenden Netzwerkprogrammierung 3
M generelle Frage zum Versenden Netzwerkprogrammierung 4
T Mit JavaMail API Faxe versenden? Netzwerkprogrammierung 5
K Files versenden Netzwerkprogrammierung 5
J Objekt mit RSA und AES verschlüsseln und entschlüsseln HILFE Netzwerkprogrammierung 4
OnDemand Json Objekt leeres Array beim lesen Netzwerkprogrammierung 9
I Socket ObjectOutputStream-Socket: Objekt wird falsch übertragen Netzwerkprogrammierung 2
L Java RMI Objekt konsistenz Netzwerkprogrammierung 1
P RMI - Neue eigene Instanz für jeden Aufruf auf nicht serialisierbares Objekt - wie? Netzwerkprogrammierung 0
R RMI und Entferntes Objekt (EO) Netzwerkprogrammierung 0
A Server Antwort enthält JSON Objekt/Array Netzwerkprogrammierung 8
N Selbes URL Objekt für alle Requests nutzen Netzwerkprogrammierung 7
B udp erkennen um welches objekt es sich handelt / max size Netzwerkprogrammierung 5
S Socket Client liest leeres Objekt Netzwerkprogrammierung 10
D Remote-Objekt-Server : Alternative Methodenaufruflogik zu Reflection und hart codiert Netzwerkprogrammierung 5
K RMI Angemeldetes Objekt nicht aktuell? Netzwerkprogrammierung 9
D [CORBA] Eigenes Objekt in idl? undefined type Netzwerkprogrammierung 5
M Objekt über Object-Stream, empfange "alte" Daten Netzwerkprogrammierung 2
M Objekt über socket senden/empfangen Netzwerkprogrammierung 3
H Objekt von JSP an Servlet übergeben Netzwerkprogrammierung 4
T Wieso ist mein Objekt leer? Netzwerkprogrammierung 6
L RMI-Objekt zwischen zwei RMI-Servern kopieren Netzwerkprogrammierung 2
W Objekt über Socket übertragen Netzwerkprogrammierung 14
G Problem bei Objekt senden von server zu client Netzwerkprogrammierung 6
P RMI - Objekt als Rückgabeparameter Netzwerkprogrammierung 3
M RMI - Ein Objekt für Alle? Netzwerkprogrammierung 5
J Prblem, wenn im verschickten Objekt ein Array ist Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben