寫程序中遇到一個問題?如下: mySoc?=?new?Socket(svrAddress,5555); myInput?=?new?ObjectInputStream(mySoc.getInputStream());//有問題 myOutput?=?new?ObjectOutputStream(mySoc.getOutputStream());//有問題 //myInput?=?new?DataInputStream(mySoc.getInputStream()); //myOutput?=?new?DataOutputStream(mySoc.getOutputStream());? 注銷的語句運行可以成功 但是未注銷的那部分?運行時就卡在那里了 但是卻沒有拋出異常 請教原因是什么?有什么問題 該怎么解決呢?找了好久終于再網上找到關于這個問題的說明了?因為問題比較特殊?所以貼出來希望對大家 有幫助 主機端先建立ObjectInputStream后建立ObjectOutputStream,則對應地客戶端要先建立 ObjectOutputStream后建立ObjectInputStream,否則會造成兩方互相等待數據而導致死 鎖。 原因是建立ObjectInputStream對象是需要先接收一定的header數據,接收到這些數據之前 會處于阻塞狀態。故而為了防止這種死鎖狀態,通訊兩方的 ObjectInputStraem,ObjectOutputStream必須注意順序對應使用。 目前相應的解決辦法還沒有找到?如果要解決?可以嘗試重載對象輸入輸出流