这是一项家庭作业,只是为了澄清。
问题是,我有一个客户端和服务器连接,但是我发送了一个类,即" Course",通过套接字连接(TCP)发送到服务器。这是我遇到IOexception问题的地方。
public void handleMessageFromClientUI(Object message)
{
try
{
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("message.ser"));
sendToServer(out);
}
catch(IOException e)
{
clientUI.display
("Could not send message" + e.getCause());
quit();
}
}
我发送了一个已经序列化的课程对象,但我仍然将异常的原因视为null。 为了简单起见,因为我有很多其他的类和代码,我只在这里放了这个片段,但是如果需要我可以添加更多。 任何指导我正确方向的帮助都将不胜感激!
我已根据请求添加了sendToServer()
final public void sendToServer(Object msg) throws IOException {
if (clientSocket == null || output == null){
throw new SocketException("socket does not exist");}
output.writeObject(msg);
}
进一步测试显示我可能将变量输出为null,这就是我得到异常的原因。
output = new ObjectOutputStream(clientSocket.getOutputStream());
这是输出的初始化声明,非常困惑,但我想我只是向前迈了一步。
感谢。
答案 0 :(得分:-1)
handlemessagefromUIclient中收到的对象消息不需要序列化以通过连接发送!