«« ( Date ) »» // «« ( Thread ) »» // kdp - 2009

Izuzetak kada se drugi put salje poruka.

by Nemanja Ilic
četvrtak, 14. maj 2009 - 21:05.

Zdravo,

Ja imam sledeci problem u projektu. Napravio sam konekciju izmedju klijenta i servera preko ObjectInput/OutputStream-ova. Kada prvi put posaljem poruku odgovor mi stigne bez problema. Kada drugi put pokusam da posaljem poruku javi mi sledeci izuzetak:

java.io.StreamCorruptedException: invalid type code: AC
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at rs.etf.kdp.nemanja_ilic.dom.server.ServerProtocolForMe.receiveUserid(ServerProtocolForMe.java:39)
at rs.etf.kdp.nemanja_ilic.dom.server.ServerThread.run(ServerThread.java:25)


Da li neko moze da mi pomogne?
Unapred hvala,
Nemanja Ilic


Kod na serveru:
public int receiveUserID()
{
MsgTxt msg = null;
try
{
msg = (MsgTxt) in.readObject(); // ovde se javi izuzetak
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
if (msg == null)
{
System.out.println("ServerProtocolForMe::receiveUserID: The message is null.");
return 2;
}
if ("Hello Nemanja, I want to have sex with you!".equals(msg.getHeader()))
return 0;
else
return 1;
}


Kod na klijentu:
public int connect(int id)
{
if (socket != null)
{
try
{
out = new ObjectOutputStream(socket.getOutputStream());
in = new ObjectInputStream(socket.getInputStream());
Msg msg = new MsgTxt("Hello Nemanja, I want to have sex with you!", Integer.toString(id));
out.writeObject((Object) msg);
out.flush();
try
{
msg = (MsgTxt) in.readObject();
System.out.println("in.readObject from clien done");
} catch (Exception e)
{
// TODO: handle exception
}
System.out.println(msg.getBody());
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return 0;
}