美文网首页
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();
    }
}

相关文章

  • 网络编程

    网络 Socket 基于TCP协议的Socket编程 基于UDP协议的Socket编程

  • Day18总结

    一.网络通信过程TCP协议和UDP协议二.socket编程 1.socket编程定义:socket又叫套接字。指的...

  • 网络模型

    socket网络编程 socket分为tcp协议和udp协议: udp: 1.面向无连接,将数据源封装在数据包中,...

  • Socket + ProtoBuf

    TCP/UDP 进行Socket编程, 常见使用的协议UDP/TCPTCP:传输控制协议 。是专门设计用于在不可靠...

  • Java中的UDP编程

    Java中的UDP编程 Java为我们提供了DatagramSocket对象作为基于UDP协议的Socket,可以...

  • 趣谈网络协议干货-Socket

    Socket是基于TCP和UDP协议的编程。Socket编程进行的是端到端的通信,往往意识不到中间经过多少局域网,...

  • UDP协议的Socket编程

    UDP协议是无序的、不可靠的、无连接的,但是传输速度比较快,UDP协议以数据报作为数据传输的载体。 服务端: 客户端:

  • 2018-09-12网络基础

    网络基础 OSI模型 协议 数据解封 数据封装 TCP与UDP协议 URL资源定位符 01-socket编程 im...

  • Django基础:web框架

    一.web框架 1.web应用的本质 1.socket网络编程 架构:C/S架构 协议:TCP/UDP协议 传输层...

  • Python 网络编程基础入门

    Python的网络编程主要支持两种网络协议:TCP和UDP。这两种协议都通过叫Socket的编程抽象进行处理。So...

网友评论

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

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