new Thread(){
public void run(){
try {
Log.i("TService", "================>SHIT");
service=new DatagramSocket(PORT);
mExecutorService = Executors.newCachedThreadPool(); //创建线程池
Log.i("TService", "=================>PLEASE");
Socket client = null;
while(true){
mList.add(client);
Log.i("TService", "===================>llll");
new Service();
//mExecutorService.execute(new Service());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
Log.i("TService", "建立");
super.onCreate();
}
class Service implements Runnable{
public Service(){
byte data [] = new byte[1024];
DatagramPacket packet =new DatagramPacket(data,data.length);
try {
service.receive(packet);
Log.i("TService", "================>pppppppp");
msg=new String(packet.getData(),packet.getOffset(),packet.getLength());
Log.i("TService", "=============>ooooo");
String stri="copy that";
byte data3[]=stri.getBytes();
DatagramPacket output=new DatagramPacket(data3, data3.length, packet.getSocketAddress());
service.send(output);
service.close();
} catch (Exception e) {
e.printStackTrace();
}
}
这个是代码和错误信息 我写了个客户端广播了个信息 只有第一次打印出来了======>pppp和=======>ooooo后面好像都在while中循环 这个怎么跳出来啊 需要判断什么吗 求大神帮忙看看 提点我一下 小弟十分感谢 谢谢~~~~!!!
题主本意是否是想让Service多运行几次好观察程序执行情况?明显题主的代码无法达到目的,service被close掉了,自然再多循环也没用。另外,题主的 while循环是个死循环,假设题主想循环五次收发活动,可以这么写
把 close放到 while循环外边。