UDP协议:面向无连接 安全系数低 不需要类似TCP协议的三次握手 但传输速度快
本次就用java来演示UDP传输
UdpClient:
public class UdpClient {
public static void main(String[] args) throws IOException {
//创建Socket放循环外 避免资源浪费
DatagramSocket datagramSocket = new DatagramSocket();
while (true){
System.out.println("请输入你要发送的内容");
Scanner scanner = new Scanner(System.in);
String context=scanner.nextLine();
//如果用户输入exit 则退出
if (context.equals("exit")){
System.out.println("退出客户端");
break;
}
byte[] msg=context.getBytes(StandardCharsets.UTF_8);
InetAddress inetAddress=InetAddress.getByName("mayikt.server.com");
int port=8080;
DatagramPacket datagramPacket = new DatagramPacket(msg,msg.length,inetAddress,port);
datagramSocket.send(datagramPacket);
System.out.println("发送成功");
}
datagramSocket.close(); //关闭释放资源
}
}
UdpServer:
public class UdpServer {
static int count=0;
public static void main(String[] args) throws IOException {
int port=8080;
DatagramSocket datagramSocket = new DatagramSocket(port);
while (true){
//接收1000次之后退出循环
if (count==1000){
break;
}
byte[] bytes=new byte[1024];
DatagramPacket datagramPacket = new DatagramPacket(bytes,bytes.length);
System.out.println("开始接收数据");
datagramSocket.receive(datagramPacket);
System.out.println("接收到数据");
byte[] data1=datagramPacket.getData();
String msg=new String(data1);
System.out.println(msg);
count++;
}
datagramSocket.close();
}
}
实现效果为 服务器端先运行之后 会一直等待客户端发送数据 客户端运行之后可以一直发送数据给服务器端