[問題] server/multiple client 的問題
最近在寫一個server與多個client
在server端輸入值然後傳給多個client
參考課本是要用multiple thread
try{ //處理多個連線
ServerSocket serversocket = new ServerSocket(7000);//設一個port
while(true){
Socket socket = serversocket.accept();//用一個while迴圈處理多個連線
Handle task = new Handle(socket);//將socket傳入Handle class
// Thread thread = new Thread(task);
// thread.start();
}
}catch(IOException ex){
System.out.println(ex);
}
}
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裡
}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){
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呢?
還有這樣做可行嗎
麻煩各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.135.240
推
12/06 01:00, , 1F
12/06 01:00, 1F
※ 編輯: nomeans 來自: 118.167.135.240 (12/06 01:08)
※ 編輯: nomeans 來自: 118.167.135.240 (12/06 01:21)
※ 編輯: nomeans 來自: 118.167.135.240 (12/06 01:22)
→
12/06 11:56, , 2F
12/06 11:56, 2F
推
12/06 13:20, , 3F
12/06 13:20, 3F
→
12/06 13:24, , 4F
12/06 13:24, 4F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):