刚好视频我也看到这里:
这事一个UDP数据接收端通过循环可以无限的接收数据,但是发送端必须发数据接收端才可以循环
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class asd {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
DatagramSocket ds = new DatagramSocket(8888);
while (true) {
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
ds.receive(dp);//阻塞是方法
/*
* whlie循环中true可以无限循环
* 但是阻塞是方法可以让程序停止
* 并等到接收数据后在循环
*/
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
int port=dp.getPort();
System.out.println(ip+"::"+data+"::"+port);
}
}
}
wait()方法也可以实现阻塞 |