0
這是程序的客戶端部分。 我有這樣的類,它與套接字一起工作,並具有讀取和寫入服務器的方法 如何使一個事件捕獲來自服務器的消息? 某些actionListener只在inputStream中有消息時纔會執行操作。 我試過了調用Running.receiveLine()的計時器;但它工作非常糟糕。 while(true)的解決方案似乎也不好。如何從InputStream捕獲事件?
public class Running extends Thread{
private Socket s;
private PrintStream ps;
private BufferedReader br;
public Running(){
try{
s = new Socket(InetAddress.getLocalHost(), 8072);
ps = new PrintStream(s.getOutputStream());
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
} catch (UnknownHostException ex) {
System.out.println("11");
ex.printStackTrace();
} catch (IOException ex) {
System.out.println("00");
ex.printStackTrace();
}
}
public String receiveLine(){
String ret = "";
try {
ret = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ret;
}
public void sendLine(String s){
ps.println(s);
}
public void close(){
try {
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
嗯,你可能想要(真)。它出什麼問題了? – keyser
我不知道如何將它連接到Swing界面。 –
只是爲了通知你...你正在擴展java.lang.Thread,但你沒有正確使用它。在這種情況下,您不會從擴展java.lang.Thread中獲益。如果你想,你應該實現run()方法,然後調用線程的start()方法。 –