当前位置: 代码迷 >> Java Web开发 >> Java监听器如何才能无限触发
  详细解决方案

Java监听器如何才能无限触发

热度:93   发布时间:2016-04-16 21:33:58.0
Java监听器怎么才能无限触发?
public static void main(String[] args) throws Exception {
System.out.println("接收端启动....");
Enentsouceobject eb=new Enentsouceobject();
//注册监听器
eb.addCuslistener(new cusEventListern(){
@Override
public void fireCusEvent(cusEvent e) {
// TODO Auto-generated method stub
super.fireCusEvent(e);
}
});

int i=0;
int k=0;
//建立udpscokte服务
DatagramSocket ds=new DatagramSocket(4001);
//创建数据包
byte buf[]=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, buf.length);
//开始循环接收
while(true){
//使用接受方法,将数据储存到数据包中
ds.receive(dp);//阻塞式
//通过数据包对象的方法,解析其中的数据,比如:地址,端口,数据内容等
String text=new String(dp.getData(),0,dp.getLength());
//无限改变,无限触发监听器
eb.setName(text);
}
  }


//这边是监听器
public class cusEventListern implements EventListener {
//事件发生后回调方法
public void fireCusEvent(cusEvent e){
Enentsouceobject object=(Enentsouceobject) e.getSource();
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception ex) {
System.out.println("defelt");
ex.printStackTrace();

}
try {
Connection connect=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123");
String sql="insert into test values(?,?)";
PreparedStatement ps=(PreparedStatement)((java.sql.Connection) connect).prepareStatement(sql);
ps.setString(1,"66");
ps.setString(2,object.getname());
ps.executeUpdate();
System.out.println("成功改变一次");
connect.close();
} catch (Exception ex){
System.out.println("defalt");
ex.printStackTrace();
}
}
}

监听器我是写在死循环里面的,对面电脑无限发送我这边监听事件无限触发接收可不可行?我现在只能接收一次,怎么才能实现无限触发
------解决思路----------------------
监听器的内容通过异步处理哈...处理会很快的拉.