很久很久以前

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            34 隨筆 :: 4 文章 :: 17 評論 :: 0 Trackbacks
          寫程序中遇到一個問題?如下:
          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必須注意順序對應使用。
          
          
          目前相應的解決辦法還沒有找到?如果要解決?可以嘗試重載對象輸入輸出流
          posted on 2006-12-30 12:46 Long Long Ago 閱讀(951) 評論(1)  編輯  收藏 所屬分類: others

          評論

          # re: java Object輸入輸出流中的一個問題zz[未登錄] 2007-06-02 09:56 小蝦米
          太謝謝這位好 人 了 。一個 困擾 我 半個月的問題 終于在你這找到答案了。謝謝!!
          謝謝!!  回復  更多評論
            

          主站蜘蛛池模板: 顺义区| 彭山县| 忻州市| 嘉祥县| 张家口市| 锦屏县| 古丈县| 江达县| 涿州市| 平潭县| 台州市| 荆州市| 新竹市| 保康县| 万州区| 武隆县| 绥宁县| 潮安县| 宜阳县| 当涂县| 沧州市| 洛浦县| 达州市| 桐柏县| 抚宁县| 宜君县| 泰兴市| 册亨县| 锡林郭勒盟| 垣曲县| 孟州市| 尼勒克县| 贵南县| 泰宁县| 蓝山县| 玉门市| 安泽县| 泰安市| 正阳县| 杭州市| 伊金霍洛旗|