客户端
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端,实现通信