UDP協(xié)議進(jìn)行信息的傳輸
package cn.jd.udp;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
/*
?* 發(fā)送端
?* 1.使用DatagramSocket? 指定端口 創(chuàng)建發(fā)送端
?* 2.準(zhǔn)備數(shù)據(jù)一定要轉(zhuǎn)成字節(jié)數(shù)組
?* 3.封裝成DatagramPacket包裹,需要指定目的地
?* 4.發(fā)送包裹send(DatagramPacket p)
?* 5.釋放資源
?*/
public class UdpClient {
?? ??? ?public static void main(String[] args) throws Exception {
?? ??? ??? ?System.out.println("發(fā)送方啟動(dòng)中");
?? ??? ??? ?//1.使用DatagramSocket? 指定端口 創(chuàng)建發(fā)送端
?? ??? ??? ?DatagramSocket client=new DatagramSocket(8888);
?? ??? ??? ?//2.準(zhǔn)備數(shù)據(jù)一定要轉(zhuǎn)成字節(jié)數(shù)組
?? ??? ??? ?String data="流星花園";
?? ??? ??? ?byte[] datas=data.getBytes();//字符串轉(zhuǎn)成字節(jié)數(shù)組
?? ??? ??? ?//3.封裝成DatagramPacket包裹,需要指定目的地
?? ??? ??? ?DatagramPacket packet
?? ??? ??? ??? ??? ??? ??? ?=new DatagramPacket(datas,0,datas.length,new InetSocketAddress("localhost",9999));
?? ??? ??? ?//4.發(fā)送包裹send(DatagramPacket p)
?? ??? ??? ?client.send(packet);
?? ??? ??? ?//5.釋放資源
?? ??? ??? ?client.close();
?? ??? ?
?? ??? ?}
?? ?
}
package cn.jd.udp;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
/*
?* 同一個(gè)協(xié)議下端口不允許沖突
?* 接收端
?* 1.使用DatagramSocket? 指定端口 創(chuàng)建接收端
?* 2.準(zhǔn)備容器 封裝成DatagramPacket包裹
?* 3.阻塞式接收包裹receive(DatagramPacket p)
?* 4.分析數(shù)據(jù)
?*??? byte[]? getData()
?*????????????? getLength()
?*? 5.釋放資源
?*/
public class UdpServer {
?? ?public static void main(String[] args) throws Exception {
?? ??? ?System.out.println("接收方啟動(dòng)中");
?? ??? ?//1.使用DatagramSocket? 指定端口 創(chuàng)建接收端
?? ??? ?DatagramSocket server=new DatagramSocket(9999);
?? ??? ?//2.準(zhǔn)備容器 封裝成DatagramPacket包裹
?? ??? ?byte[]? container=new byte[1024*60];//最多接收60K
?? ??? ?DatagramPacket packet=new DatagramPacket(container, 0,container.length);
?? ??? ?//3.阻塞式接收包裹receive(DatagramPacket p)
?? ??? ?server.receive(packet);
?? ??? ?//4.分析數(shù)據(jù)
?? ??? ?//byte[]?? getData()
?? ??? ?//getLength()
?? ??? ?byte[] datas=packet.getData();
?? ??? ?int len=packet.getLength();
?? ??? ?System.out.println(new String(datas,0,len));
?? ??? ?//5.釋放資源
?? ??? ?server.close();
?? ?}
}