• UDP通信


    package com.slp;
    
    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=8800;
            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[1024];
            DatagramPacket packet2=new DatagramPacket(data2, data2.length);
            //2.接收服务器响应的数据
            socket.receive(packet2);
            //3.读取数据
            String reply=new String(data2, 0, packet2.getLength());
            System.out.println("我是客户端,服务器说:"+reply);
            //4.关闭资源
            socket.close();
        }
    }
    package com.slp;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    /*
     * 服务器端,实现基于UDP的用户登陆
     */
    public class UDPServer {
        public static void main(String[] args) throws IOException {
            /*
             * 接收客户端发送的数据
             */
            //1.创建服务器端DatagramSocket,指定端口
            DatagramSocket socket=new DatagramSocket(8800);
            //2.创建数据报,用于接收客户端发送的数据
            byte[] data =new byte[1024];//创建字节数组,指定接收的数据包的大小
            DatagramPacket packet=new DatagramPacket(data, data.length);
            //3.接收客户端发送的数据
            System.out.println("****服务器端已经启动,等待客户端发送数据");
            socket.receive(packet);//此方法在接收到数据报之前会一直阻塞
            //4.读取数据
            String info=new String(data, 0, packet.getLength());
            System.out.println("我是服务器,客户端说:"+info);
            
            /*
             * 向客户端响应数据
             */
            //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();
        }
    }
  • 相关阅读:
    服务部署 RPC vs RESTful
    模拟浏览器之从 Selenium 到splinter
    windows程序设计 vs2012 新建win32项目
    ubuntu python 安装numpy,scipy.pandas.....
    vmvare 将主机的文件复制到虚拟机系统中 安装WMware tools
    ubuntu 修改root密码
    python 定义类 简单使用
    python 定义函数 两个文件调用函数
    python 定义函数 调用函数
    python windows 安装gensim
  • 原文地址:https://www.cnblogs.com/dream-to-pku/p/6127325.html
Copyright © 2020-2023  润新知