1.UDP通信服務器端的實現:
public class UDPServer {
public static void main(String[] args) throws IOException{
/*
* 接收客戶端請求
*/
//1.創建DatagramSocket,並綁定相應的端口
DatagramSocket socket = new DatagramSocket(8808);
//2.創建DatagramPacket對象
byte[] bytes = new byte[1024];
DatagramPacket packet = new DatagramPacket(bytes,bytes.length);
//3.接收客戶端的請求
System.out.println("***服務器已啓動,等待客戶端連接***");
socket.receive(packet);
//4.輸出客戶端請求
String s = new String(bytes, 0, packet.getLength());
System.out.println("收到客戶端請求:"+s);
/*
* 響應客戶端請求
*/
//1.創建客戶端地址、端口、數據
InetAddress address = packet.getAddress();
int port = packet.getPort();
byte[] bytes2 = "登錄成功,歡迎你!!!".getBytes();
//2.創建數據報
DatagramPacket packet2 = new DatagramPacket(bytes2, bytes2.length, address, port);
//3.響應客戶端
socket.send(packet2);
//關閉socket
socket.close();
}
}
2.UDP通信客戶端的實現:
public class UDPClient {
public static void main(String[] args) throws IOException{
/*
* 客戶端發送請求
*/
//1.創建地址,端口,數據
InetAddress address = InetAddress.getByName("localhost");
int port=8808;
byte[] data = "usr: lqq; password: 123".getBytes();
//2.創建DatagramPacket對象
DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
//3.創建DatagramSocket對象
DatagramSocket socket = new DatagramSocket();
//4.發送請求
socket.send(packet);
/*
* 客戶端接收響應
*/
//1.創建數據報
byte[] data2 = new byte[1024];
DatagramPacket packet2 = new DatagramPacket(data2, data2.length);
//2.接收響應
socket.receive(packet2);
//3.輸出接收到的數據
String s = new String(data2, 0, packet.getLength());
System.out.println("收到服務器響應:"+s);
//4.關閉Socket
socket.close();
}
}