• UDP通信例子


    服务端:

    package com.socket.udp;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetSocketAddress;
    import java.net.SocketException;
    
    /**
     * 基于UDP协议通信,服务端程序。
     */
    public class Server
    {
        private DatagramSocket server = null;
        private InetSocketAddress addr = null;
        private final byte[] buffer = new byte[256];
        private DatagramPacket packet = null;
    
        public Server(String host, int port) throws SocketException
        {
            this.addr = new InetSocketAddress(host, port);
            this.server = new DatagramSocket(this.addr);
            System.out.println("服务端开启");
        }
    
        /**
         * 接收
         */
        public String receive() throws IOException
        {
            this.packet = new DatagramPacket(this.buffer, this.buffer.length);
            this.server.receive(this.packet);
            return new String(this.packet.getData(), 0, this.packet.getLength());
        }
    
        /**
         * 发送
         */
        public DatagramPacket response(String info) throws IOException
        {
            DatagramPacket p = new DatagramPacket(this.buffer, this.buffer.length, this.packet.getAddress(), this.packet.getPort());
            p.setData(info.getBytes());
            this.server.send(p);
            return p;
        }
    
        public static void main(String[] args) throws IOException
        {
            String serverHost = "127.0.0.1";
            int serverPort = 10000;
            Server server = new Server(serverHost, serverPort);
            while (true)
            {
                System.out.println("服务端接收到:" + server.receive());
                server.response("server说:客户端你好!");
            }
        }
    
    }

    客户端:

    package com.socket.udp;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.net.SocketException;
    import java.net.UnknownHostException;
    
    /**
     *  基于UDP协议通信,客户端程序。
     */
    public class Client
    {
        private DatagramSocket client = null;
        private DatagramPacket packet = null;
        private final byte[] buffer = new byte[1024];
    
        public Client(String host, int port, byte[] bytes) throws SocketException, UnknownHostException
        {
            this.client = new DatagramSocket();
            this.packet = new DatagramPacket(bytes, bytes.length, InetAddress.getByName(host), port);
            System.out.println("客户端开启");
        }
    
        /**
         * 发送
         */
        public DatagramPacket send() throws IOException
        {
            this.client.send(this.packet);
            return this.packet;
        }
    
        /**
         * 接收
         */
        public String receive(String host, int port) throws IOException
        {
            DatagramPacket p = new DatagramPacket(this.buffer, this.buffer.length, InetAddress.getByName(host), port);
            this.client.receive(p);
            return new String(p.getData());
        }
    
        public String receive2() throws IOException
        {
            DatagramPacket p = new DatagramPacket(this.buffer, this.buffer.length, this.packet.getAddress(), this.packet.getPort());
            this.client.receive(p);
            return new String(p.getData());
        }
    
        public static void main(String[] args) throws IOException
        {
            String serverHost = "127.0.0.1";
            int port = 10000;
            Client client = new Client(serverHost, port, "client说:服务器你好!".getBytes());
            client.send();
            //String info = client.receive(serverHost, port);
            System.out.println("客户端接收到:" + client.receive2());
        }
    
    }
  • 相关阅读:
    数据库之多表操作
    数据库之修改表结构
    mysql数据库
    协程
    线程
    Javaweb基础学习—— jQuery基础
    javaweb基础学习—— css
    JDBC基础学习笔记
    JDBC连接MySQL常见错误集锦
    MySQL基础笔记
  • 原文地址:https://www.cnblogs.com/chrono/p/4026642.html
Copyright © 2020-2023  润新知