zoukankan      html  css  js  c++  java
  • Java UDP 编程

    1.客户端代码

     1 import java.io.IOException;
     2 import java.net.DatagramPacket;
     3 import java.net.DatagramSocket;
     4 import java.net.InetAddress;
     5 
     6 public class UDPClient {
     7     public static void main(String[] args) throws IOException {
     8         //1.定义服务器的地址、端口号,数据
     9         InetAddress address = InetAddress.getByName("localhost");
    10         int port = 8800;
    11         byte[] data = "用户名:admin; 密码:123".getBytes();
    12         //2.创建数据报,包含发送的数据信息
    13         DatagramPacket packet = new DatagramPacket(data, data.length,address,port);
    14         //3.创建DatagramSocket 对象
    15         DatagramSocket socket = new DatagramSocket();
    16         //4.向服务器端发送数据报
    17         socket.send(packet);
    18         /**
    19          * 接收服务器端响应的数据
    20          */
    21         //1.创建数据报,用于接收服务器端响应的数据
    22         byte[] data2 = new byte[1024];
    23         DatagramPacket packet2 = new DatagramPacket(data2, data2.length);
    24         //2.接收服务器响应的数据
    25         socket.receive(packet2);
    26         //3.读取数据
    27         String reply = new String(data2, 0, packet2.getLength());
    28         System.out.println("我是客户端,我收到的服务器信息:" + reply);
    29         //4.关闭资源
    30         socket.close();
    31     }
    32 }
    View Code

    2.服务器端代码

     1 import java.io.IOException;
     2 import java.net.DatagramPacket;
     3 import java.net.DatagramSocket;
     4 import java.net.InetAddress;
     5 /**
     6  * 
     7  * UDP 服务器端
     8  *
     9  */
    10 public class UDPServer {
    11     public static void main(String[] args) throws IOException {
    12     //1.创建服务器端DatagramSocket,指定端口
    13     DatagramSocket socket = new DatagramSocket(8800);
    14     //2.创建数据报,用于接收客户端发送的数据
    15     byte[] data = new byte[1024];//创建字节数组,指定接收的数据包的大小。
    16     DatagramPacket packet = new DatagramPacket(data, data.length);
    17     //3.接收客户端发送的数据
    18     System.out.println("****服务器端已经启动,等待客户端发送信息");
    19     socket.receive(packet);//此方法在接收到数据报之前会一直阻塞
    20     //4.读取数据
    21     String info = new String(data, 0, packet.getLength());
    22     System.out.println("我是服务器,客户端说:" + info);
    23     
    24     /**
    25      * 向客户端响应数据
    26      */
    27     //1.定义客户端的地址、端口号,数据
    28     InetAddress address = packet.getAddress();
    29     int port = packet.getPort();
    30     byte[] data2 = "欢迎您!".getBytes();
    31     //把数据发送给客户端
    32     DatagramPacket packet2 = new DatagramPacket(data2, data2.length,address,port);
    33     socket.send(packet2);
    34     //4.关闭socket
    35     socket.close();
    36     }
    37 }
    View Code
  • 相关阅读:
    Java设计模式—模板方法模式
    STM32 常用GPIO操作函数记录
    GPIO 配置之ODR, BSRR, BRR 详解
    STM32F4先设置寄存器还是先使能时钟
    LDR指令的格式:
    printf函数重定向
    stm32F4各个库文件的作用分析
    STM32F4时钟设置分析
    STM32F407存储器和总线架构
    SPI移位寄存器
  • 原文地址:https://www.cnblogs.com/gylhaut/p/5270829.html
Copyright © 2011-2022 走看看