使用DatagramSocket dsocket接收数据,无限超时堵塞接收操作,在某时刻想关闭它, 只用dsocket.close()函数行吗?是否还要其他操作? 高手请教!!!
dsocket.setSoTimeout(0);
packet = new DatagramPacket(buffer, buffer.length);
dsocket.receive(packet);
.....
dsocket.close();
dsocket = null;
......
dsocket.setSoTimeout(0);
packet = new DatagramPacket(buffer, buffer.length);
dsocket.receive(packet);
.....
dsocket.close();
dsocket = null;
......
dsocket.setSoTimeout(0);
packet = new DatagramPacket(buffer, buffer.length);
dsocket.receive(packet);
能具体点吗? 给几句例子代码吧
public class ti extend threadboolean time;
packet = new DatagramPacket(buffer, buffer.length);
public ti(time){
if(time == false){
packet,close;
}
}在你的程序里
dsocket.setSoTimeout(0);
packet = new DatagramPacket(buffer, buffer.length);
dsocket.receive(packet);
.....
dsocket.close();
dsocket = null;
如果你所说的某时刻到了
你就建立一thread的对象
Thread ti = new Thread(false);
t1.start();
不太明白: packet,close;?
我的程序里构造一个DatagramSocket dsocket = new DatagramSocket(port);
再构造一个DatagramPacket,然后就接收数据.
public class Datagramtest public Datagramtest(){ dsocket.setSoTimeout(0);
packet = new DatagramPacket(buffer, buffer.length);
dsocket.receive(packet);
}
public Datagramtest getinstance(){
return this;
}public static void main(String....){
if(xxx==xxx){
thread t1 = new mythread(false);
t1.start();
}
}public class MyThread extends threadprivate Datagramtest dt;
public Mythread(choose){
if(choose == false){
dt.getinstance().close;
}
}