Witam,
mam problem, próbuje przesłać obiekt od klienta do serwera i od serwera do klienta i ta pierwsza opcja wychodzi bez problemu, ale z ta druga się męczę i coś mi ciągle nie działa, mógłby mi ktos pomóc.
Poki co to jest mój kod:
KLASA CLIENT:
public class Client
{
Socket socket = null;
private ObjectOutputStream oos = null;
private ObjectInputStream ois = null;
Client(int port)
{
try
{
socket = new Socket("localhost", port);
oos = new ObjectOutputStream(socket.getOutputStream());
ois = new ObjectInputStream(socket.getInputStream());
} catch (IOException e)
{
e.printStackTrace();
}
}
void Wysylanie(Osoba A)
{
try
{
oos.writeObject(A);
oos.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
KLASA SERVER:
public class Server extends Thread
{
private ServerSocket serverSocket;
ObjectInputStream ois = null;
ObjectOutputStream oos = null;
public Server(int port)
{
try
{
serverSocket = new ServerSocket(port);
} catch (IOException e)
{
e.printStackTrace();
}
}
public void run()
{
while (true)
{
try
{
System.out.println("Waiting for client ");
Socket server = serverSocket.accept();
ois = new ObjectInputStream(server.getInputStream());
oos = new ObjectOutputStream(server.getOutputStream());
Osoba B = (Osoba) ois.readObject();
System.out.println(B.imie);
System.out.println(B.nr);
oos.close();
ois.close();
server.close();
} catch (IOException e)
{
e.printStackTrace();
break;
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
}
}
WYWOLANIE:
if(source ==bServer)
{
System.out.println("Server");
Thread thread1 = new Server(123);
thread1.start();
}
if(source ==bClient)
{
System.out.println("Client");
Client client1 = new Client(123);
Osoba A = new Osoba("Rafal", 5);
client1.Wysylanie(A);
}