【Java】udp 實現 client端和server端通訊
阿新 • • 發佈:2019-01-08
客戶端
1.建立客戶端+埠
2.準備資料
3.打包(傳送的地點及埠)
4.傳送
5.釋放
服務端
1.建立服務端+埠
2.準備接受容器
3.封裝成包
4.接受資料
5.分析資料
6.釋放
client.java
package UdpDemo; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.net.SocketException; import java.util.Scanner; /** * 客戶端 * 1.建立客戶端+埠 * 2.準備資料 * 3.打包(傳送的地點及埠) * 4.傳送 * 5.釋放 * @author 袁盛桐 * */ public class UdpClient { public static void main(String[] args) throws IOException { //1.建立客戶端+埠 DatagramSocket client = new DatagramSocket(5555); //2.準備資料 Scanner sc = new Scanner(System.in); System.out.println("input send msg:"); String msg = sc.nextLine(); byte[] data = msg.getBytes(); //3.打包(傳送的地點及埠) DatagramPacket packet = new DatagramPacket(data, data.length,new InetSocketAddress("localhost",7777)); //4.傳送 client.send(packet); //5.釋放 client.close(); } }
server.java
package UdpDemo; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; /** * 服務端 * 1.建立服務端+埠 * 2.準備接受容器 * 3.封裝成包 * 4.接受資料 * 5.分析資料 * 6.釋放 * @author 袁盛桐 * */ public class UdpServer { public static void main(String[] args) throws IOException { //1.建立服務端+埠 DatagramSocket server = new DatagramSocket(7777); //2.準備接受容器 byte[] container = new byte[1024]; //3.封裝成包 DatagramPacket packet = new DatagramPacket(container, container.length); //4.接受資料 server.receive(packet); //5.分析資料 byte[] data = packet.getData(); int len = packet.getLength(); System.out.println("server receive:"+new String(data,0,len)); //6.釋放 server.close(); } }
實現通訊
- 先執行server端,發現server正在等待
- 再執行client端,實現通訊