2014-11-23 121 views
-1

這是一項家庭作業,以澄清。IOexception發送一個對象到服務器(套接字連接)

問題是,我有一個客戶端和服務器連接,但是我正在通過套接字連接(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); 
    } 

進一步的測試表明,我可以具有可變輸出爲空這就是爲什麼我得到的異常。

output = new ObjectOutputStream(clientSocket.getOutputStream()); 

這對輸出,很迷茫的初始化語句,但我想我只是向前動了一步。

謝謝。

+0

我已經測試了打印對象是否爲null,並且我得到了一個輸出。 – Mjall2 2014-11-23 07:09:36

+0

'sendToServer'裏面有什麼? – 2014-11-23 07:17:54

+0

告訴我們你有'IOException'而不提供堆棧跟蹤是徒勞的。 – EJP 2014-11-23 08:52:27

回答

-1

handlemessagefromUIclient中收到的對象消息不需要被序列化以通過連接發送!

+0

當然,你的意思是它*確實*需要*可串行化* *? – EJP 2014-11-23 08:52:56

相關問題