很久很久以前

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            34 隨筆 :: 4 文章 :: 17 評(píng)論 :: 0 Trackbacks
          寫(xiě)程序中遇到一個(gè)問(wèn)題?如下:
          mySoc?=?new?Socket(svrAddress,5555);
          
          
          myInput?=?new?ObjectInputStream(mySoc.getInputStream());//有問(wèn)題
          myOutput?=?new?ObjectOutputStream(mySoc.getOutputStream());//有問(wèn)題
          //myInput?=?new?DataInputStream(mySoc.getInputStream());
          //myOutput?=?new?DataOutputStream(mySoc.getOutputStream());?
          注銷(xiāo)的語(yǔ)句運(yùn)行可以成功
          但是未注銷(xiāo)的那部分?運(yùn)行時(shí)就卡在那里了
          但是卻沒(méi)有拋出異常
          請(qǐng)教原因是什么?有什么問(wèn)題
          該怎么解決呢?

          找了好久終于再網(wǎng)上找到關(guān)于這個(gè)問(wèn)題的說(shuō)明了?因?yàn)閱?wèn)題比較特殊?所以貼出來(lái)希望對(duì)大家
          有幫助
          
          主機(jī)端先建立ObjectInputStream后建立ObjectOutputStream,則對(duì)應(yīng)地客戶(hù)端要先建立
          ObjectOutputStream后建立ObjectInputStream,否則會(huì)造成兩方互相等待數(shù)據(jù)而導(dǎo)致死
          鎖。
          
          原因是建立ObjectInputStream對(duì)象是需要先接收一定的header數(shù)據(jù),接收到這些數(shù)據(jù)之前
          會(huì)處于阻塞狀態(tài)。故而為了防止這種死鎖狀態(tài),通訊兩方的
          ObjectInputStraem,ObjectOutputStream必須注意順序?qū)?yīng)使用。
          
          
          目前相應(yīng)的解決辦法還沒(méi)有找到?如果要解決?可以嘗試重載對(duì)象輸入輸出流
          posted on 2006-12-30 12:46 Long Long Ago 閱讀(958) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): others

          評(píng)論

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

          主站蜘蛛池模板: 女性| 吐鲁番市| 邓州市| 慈利县| 罗平县| 云南省| 阳原县| 永城市| 永清县| 福州市| 聊城市| 洛阳市| 武义县| 沅江市| 林周县| 错那县| 积石山| 阿城市| 南平市| 红安县| 枣庄市| 铁岭县| 高要市| 凌海市| 井冈山市| 深圳市| 武邑县| 吴忠市| 临清市| 巴林左旗| 舞钢市| 拜城县| 邵东县| 华池县| 仙游县| 巴林左旗| 建瓯市| 来宾市| 丰宁| 元朗区| 外汇|