Witam mam pewien problem pisze pewnie programik który ma wymieniać się zawartościami tablic. Posiada on trzy klasy "tablice","server" i "client", w klasie "tablice" posiadam dwie tablice tab1(jakieś dane) i tab2(same zera), i teraz mam problem ponieważ nie wiem jak wymienić się tablicami(chodzi mi o to ze serwer wyśle tab1 a klient ja odbierze i wpisze w tab2 i na odwrót), funkcja main znajduje się w klasie "tablice" w niej tez jest wybór czy aplikacja ma pracować jako serwer czy klient.
0
0
Strumienie InuputStream
oraz OutputStream
możesz udekorować odpowiednio klasami ObjectInputStream
oraz ObjectOutputStream
. Tak opakowane strumienie pozwalają na przesyłanie obiektów implementujących interfejs Serializable
, mógłbyś więc przesyłać przez strumień cały obiekt opisujący tablicę.
0
Albo idąc na łatwiznę stworzyć klasę tylko na obie tablice i ją wysyłać przez w/w metodę.
0
A mógł bym prosić i jakiś przykładowy kod jak to zrobić? Ponieważ sieć w javie to dla mnie nowość i dopiero zaczynam z nią przygodę. Był bym bardzo wdzięczny.
0
"Opakowanie" tablicy:
import java.io.*;
public class SerializedObject implements Serializable
{
private int[] array=null;
//-------------------------
public void setArray(int[] array)
{
this.array=array;
}
//-------------------------
public int[] getArray()
{
return array;
}
}
Wysyłanie:
Socket socket = new Socket(host, 4000);
oos = new ObjectOutputStream(socket.getOutputStream());
SerializedObject so = new SerializedObject();
int[] data = {3, 3, 3, 3, 3, 3, 3};
so.setArray(data);
oos.writeObject(so);
oos.flush();
oos.close();