package com.wzy.UDPTest;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress; /**
*
* @author wzy
* 伺服器端,實現基於UDP的使用者登陸
*/
public class UDPserver {
public static void main(String[] args) {
try{
//1.建立伺服器端Datagramsocket,指定埠
DatagramSocket socket = new DatagramSocket();
//2.建立資料報,用於接收客戶端傳送的資料
//建立位元組陣列,指定接收的資料包的大小
byte[] data = new byte[];
DatagramPacket packet = new DatagramPacket(data, data.length);
System.out.println("伺服器啟動中。。。。。");
//3.接收客戶端傳送的資料
//此方法在接收到資料報之前會一直阻塞
socket.receive(packet);
//4.讀取資料
String info = new String(data,,data.length);
System.out.println("伺服器端接收到資訊:"+info.trim());
/**
* 向客戶端響應資料
* */
//1.定義客戶端的地址、埠號、資料
InetAddress address = packet.getAddress();
int port = packet.getPort();
byte[] data2 = "你好,客戶端".getBytes();
//2.建立資料報,包含響應的資料資訊
DatagramPacket packet2 = new DatagramPacket(
data2, data2.length,address,port);
//3.響應客戶端
socket.send(packet2);
//4.關閉資源
socket.close();
}
catch(Exception E){
E.printStackTrace();
} }
}
package com.wzy.UDPTest;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
/**
* 客戶端*/
public class UDPclient {
public static void main(String[] args) throws
IOException {
/**
* 向伺服器傳送資料**/
//1.定義伺服器的地址、埠號、資料
InetAddress address = InetAddress.getByName("localhost");
int port = ;
byte[] data = "使用者名稱:admin;密碼:123".getBytes();
//2.建立資料報,包含傳送的資料資訊
DatagramPacket packet = new DatagramPacket(
data, data.length, address, port);
//3.建立DatagramSocket物件
DatagramSocket socket = new DatagramSocket();
//4.向伺服器傳送資料報
socket.send(packet); /**
* 接收伺服器端的響應
* */
//1.建立資料報,用於接收伺服器端響應的資料
byte[] data2 = new byte[];
DatagramPacket packet2 = new DatagramPacket(data2, data2.length);
//2.接受伺服器響應的資料
socket.receive(packet2);
//3.讀取資料
String reply = new String(data2,,packet2.getLength());
System.out.println("客戶端收到迴應:"+reply);
//4.關閉資源
socket.close(); }
}