Re: [問題] server/multiple client 的問題

看板java作者 (痞子軍團團長)時間16年前 (2009/12/06 11:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
請不要把這裡當成 debug 版 (結果版主自己拿來混文章數 ==.===) 你的問題就在你的程式碼裡頭 如果你跟我一樣不會寫 multi-thread(咪的,我是真的沒寫過) 那你可以先抽掉所有 multi-thread 的東西 然後看看到底發生什麼事情、問題在哪裡 ※ 引述《nomeans (Walter)》之銘言: : 最近在寫一個server與多個client : 在server端輸入值然後傳給多個client : 參考課本是要用multiple thread : private class ButtonListener implements ActionListener{ : public void actionPerformed(ActionEvent e){ : try{ : double InputValue = Double.parseDouble(jtf.getText().trim()); : jta.append("The value you passed is " + InputValue ); : jta.append("\n"); : Handle a = new Handle();//new 一個 Handle的物件 : a.setValue(InputValue);//透過a將剛剛輸入的InputValue傳到Handle裡 ^^^^^^^^^^^^^^^^^^^^^^^ 發生 NullPointException 的是哪一個物件? 為甚麼? 你有試著瞭解 or 解釋嗎? 寫程式很多時候是 try & error 但是你在 try 的時候要像侏儸紀公園裡頭的恐龍一樣 有系統、有思想地 try : }catch(Exception ex){ : System.out.println(ex); : } : } : } : class Handle implements Runnable{ : private Socket socket; : double setInput; : public Handle(Socket socket){ //接收從外部傳來的socket : this.socket = socket; : } : public Handle(){ : } : public void setValue(double i){ : this.setInput = i; : } : public void run(){ : try{ : while(true){ System.out.println(socket==null); : DataOutputStream output = new DataOutputStream(socket.getOutputStream()); : output.writeDouble(this.setInput);//將從外部接收的setInput值傳給 : } client顯示 : }catch(Exception ex){ : System.out.println(ex); : } : } : } : sorry~~ : 我放上的code只是個server.java檔 : 不知道我的注解是否有讓程式比較清楚 : 非常抱歉 : 有將遇到的thread問題用//標示在上面的code : 現在遇到的問題是thread的使用 : 不知道是該加在哪 : 如果加在處理多個連線那邊 : 發現無法會一直將預設的setInput一直傳過去client端 : 然後跑成無限迴圈QQ : 如果加在Button那裏 : 又會一直出現java.lang.NullPointerException : 有想到一個方法 : 就是等button按下傳入setValue : 再start task的thread : 可是要如何宣告這樣的thread呢? : 還有這樣做可行嗎 : 麻煩各位了 抱歉一點用處也沒有、也不會有人想免費幫你寫作業 程式沒有什麼「可不可以」的作法 只有「作不作的出來」跟「作法好不好」的差別 先搞懂你這份程式碼的參考來源的每一行意思 -- 侃侃長論鮮窒礙 眾目睽睽無心顫 Blog:http://blog.psmonkey.org 煢居少聊常人事 殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc)精華區 \囧/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.231.119.242
文章代碼(AID): #1B6o9aYU (java)
文章代碼(AID): #1B6o9aYU (java)