Re: [問題] server/multiple client 的問題
請不要把這裡當成 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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):