java DatagramSocket和DatagramPackUDP_IP协议的网络编程
- UDP编程:DatagramSocket DatagramPack
- UDP数据报通过数据报套接字 DatagramSocket 发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。
- DatagramPacket 对象封装了UDP数据报,在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号。
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import org.junit.Test;
public class TestUDP {
@Test
public void send(){
DatagramSocket ds = null;
try {
ds = new DatagramSocket();
byte[] b = "我要发送".getBytes();
DatagramPacket pack = new DatagramPacket(b, 0, b.length, InetAddress.getByName("127.0.0.1"), 9090);
ds.send(pack);
} catch (IOException e) {
e.printStackTrace();
}finally{
if(ds != null){
ds.close();
}
}
}
@Test
public void receive() {
DatagramSocket ds = null;
try {
ds = new DatagramSocket(9090);
byte[] b = new byte[1024];
DatagramPacket pack = new DatagramPacket(b, 0, b.length);
ds.receive(pack);
String str = new String(pack.getData(), 0, pack.getLength());
System.out.println(str);
} catch (IOException e) {
e.printStackTrace();
}finally{
if (ds != null){
ds.close();
}
}
}
}