-
UDP网络通信
-----------------------
------------------------
发送端与接收端是两个独立的运行程序
package org.lfz._20_08_Internet_UDP;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import org.junit.Test;
public class TestUDP {
@Test
public void semd() {
DatagramSocket ds=null;
try {
ds = new DatagramSocket();
byte[] b = "fgjfdjjf".getBytes();
/*创建一个数据报,每一个数据报不能大于64k。
数据报记录着数据信息、发送端的IP、端口号以及要发送到的接收端的IP、端口号*/
DatagramPacket dp = new DatagramPacket(b,0,b.length,InetAddress.getByName("127.0.0.1"),9090);
ds.send(dp);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(ds!=null) {
ds.close();
}
}
}
@Test
public void receive() {
DatagramSocket ds=null;
try {
ds = new DatagramSocket(9090,InetAddress.getByName("127.0.0.1"));
byte[] b=new byte[1024];
DatagramPacket dp = new DatagramPacket(b,0,b.length);
ds.receive(dp);
String string = new String(dp.getData(),0,dp.getLength());
System.out.println(string);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(ds!=null) {
ds.close();
}
}
}
}