zoukankan      html  css  js  c++  java
  • java Socket编程-基于UDP

    package com.wzy.UDPTest;
    
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    /**
     * 
     * @author wzy
     * 服务器端,实现基于UDP的用户登陆
     */
    public class UDPserver {
        public static void main(String[] args) {
            try{
            //1.创建服务器端Datagramsocket,指定端口
            DatagramSocket socket = new DatagramSocket(8800);
            //2.创建数据报,用于接收客户端发送的数据
            //创建字节数组,指定接收的数据包的大小
            byte[] data = new byte[1024];
            DatagramPacket packet = new DatagramPacket(data, data.length);
            System.out.println("服务器启动中。。。。。");
            //3.接收客户端发送的数据
            //此方法在接收到数据报之前会一直阻塞
            socket.receive(packet);
            //4.读取数据
            String info  = new String(data,0,data.length);
            System.out.println("服务器端接收到信息:"+info.trim());
            /**
             * 向客户端响应数据
             * */
            //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();
            }
            catch(Exception E){
            E.printStackTrace();    
            }
            
            
            
            
        }
    }
    package com.wzy.UDPTest;
    
    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();
            
        }
    }
  • 相关阅读:
    BZOJ 1101 莫比乌斯函数+分块
    BZOJ 2045 容斥原理
    BZOJ 4636 (动态开节点)线段树
    BZOJ 2005 容斥原理
    BZOJ 2190 欧拉函数
    BZOJ 2818 欧拉函数
    BZOJ 3123 主席树 启发式合并
    812. Largest Triangle Area
    805. Split Array With Same Average
    794. Valid Tic-Tac-Toe State
  • 原文地址:https://www.cnblogs.com/wwzyy/p/6040846.html
Copyright © 2011-2022 走看看