作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] server/multiple client 的问题
时间Sun Dec 6 11:17:52 2009
请不要把这里当成 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