可以创建一个新的线程,将ServerSocket等类的处理放在这个线程中,
在按钮事件处理中启动该线程,就可以了。
在按钮事件处理中启动该线程,就可以了。
解决方案 »
- IE8 DWR addScript失效!
- 如何用struts1.2上传图片
- Struts2的Iterator标签。。。。简单问题,大家帮忙
- tomcat 越来越慢
- myeclipse配置sqlserver 然后配置spring + hibernate?
- 我如何把我select * from biao的植放到hashmap里,然后有怎么样把他一条一条的取出来呢??请大家帮帮忙,谢谢,谢谢,谢谢,谢谢谢谢,谢谢谢谢,
- 我是初学者,想在WEB开发方面学习!请问JAVA难学吗?要什么样的基础?
- jb8+weblogic7 二个问题请教
- 为什么j2eesdk自带的J2EE服务器无法启动?
- maven项目中创建的servlet不能运行
- 请高手帮忙解决socket write error的问题.
- Tomcat 数据库链接池
while(isClicked){
sst.accept();//ServerSocket對象
}
isClicked是一個布爾值﹐如果按鈕按下﹐就設它為true;若有其它狀態發生﹐就設它為false.對于"如果不在后台运行,按钮事件就一直不会结束。"這句話﹐我不是很理解﹐樓主能否說得更詳細?
可以参考以下代码。
1.监听线程用于监听对方来的SOCKET。
public class Monitor extends Thread{
public void run(){
boolean stop = false;
ServerSocket ss = new ServerSocket("%yourHostName%",port);
while(!stop){
Socket s = ss.accept();
/**
*你已经接到Socket,想干吗就去自己处理吧。
*注意保持该线程句柄
*/
}
}
}onActionPerform(event e){
}
1.监听线程用于监听对方来的SOCKET。
public class Monitor
extends Thread {
public void run() {
boolean stop = false;
int port = 8081;
int backLog = 20;
InetAddress address;
try {
address = InetAddress.getByName("eric");
/**
*注意保持该线程句柄,用户日后结束RUN()
*/
ServerSocket ss = new ServerSocket(8081, 20, address); while (!stop) {
Socket s = ss.accept(); //你已经接到Socket,想干吗就去自己处理吧。
sleep(800);
}
}
catch (UnknownHostException ukEx) {
}
catch (IOException ioEx) {
}
catch (InterruptedException itEX) {
}
} public void setStop(boolean _stop) {
this.stop = _stop;
}
}2.ActionListener中
onActionPerform(event e) {
Monitor monitor = new Monitor(); //注意在全局或某些重要的操作类中保持该线程句柄,
monitor.run(); //It's ok.
}