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:
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:
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
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);
}
}
}
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