美文网首页
UDP协议的Socket编程

UDP协议的Socket编程

作者: Veteor | 来源:发表于2017-01-10 20:36 被阅读0次

    UDP协议是无序的、不可靠的、无连接的,但是传输速度比较快,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[] data1 = "欢迎你!".getBytes();
    
            //2、创建数据报,包含相应的信息
            DatagramPacket packet1 = new DatagramPacket(data1,data1.length,address,port);
    
            //3、响应客户端
            socket.send(packet1);
    
            //4、关闭资源
            socket.close();
    
        }
    }
    

    客户端:

    public class UDPClient {
        public static void main(String [] args) throws IOException {
            /**
             * 客户端向服务端发送消息
             */
            //1、定义服务器的地址、端口号、数据
            InetAddress address = InetAddress.getByName("localhost");//因为服务器是本机,所以才能用“localhost”
            int port = 8800;
            byte[] data = "用户名:ljsu;密码:245245".getBytes();
    
            //2、创建数据报,包含需要发送的数据
            DatagramPacket packet = new DatagramPacket(data,data.length,address,port);
    
            //3、创建DatagramSocket对象
            DatagramSocket socket = new DatagramSocket();
    
            //4、想服务器发送数据
            socket.send(packet);
    
            /**
             * 客户端接受服务端响应信息
             */
            //1、创建数据报,用于接受服务器响应信息
            byte[] data1 = new byte[1024];
            DatagramPacket packet1 = new DatagramPacket(data1,data.length);
    
            //2、接收服务端端响应的数据
            System.out.println("-----等待服务端响应消息----");
            socket.receive(packet1);
    
            //3、读取数据
            String info = new String(data1,0,packet1.getLength());
            System.out.println("服务端响应的信息为:" + info);
    
            //4、关闭资源
            socket.close();
        }
    }
    

    相关文章

      网友评论

          本文标题:UDP协议的Socket编程

          本文链接:https://www.haomeiwen.com/subject/fzskbttx.html