UDP通信

简介: UDP通信

特点

无连接、不可靠、快速传输


1.使用UDP通信实现:发送信息,接收信息


客户端实现步骤


1.创建DatagramSocket对象(客户端对象)--> 扔韭菜的人

2.创建DatagramPacket对象封装需要发送的数据(数据包对象)--> 韭菜盘子

3.使用DatagramSocket对象的send方法,传入DatagramPacket对象--> 开始抛出韭菜

4.释放资源

public class Client {
    public static void main(String[] args) throws Exception {
        // 1. 创建客户端对象(发韭菜出来的人)
        DatagramSocket socket=new DatagramSocket();
 
        // 2. 创建数据包对象封装要发出去的数据(创建一个韭菜盒子)
        /*(byte buf[], int offset, int length,
            InetAddress address, int port)
            参数一:封装要发出去的数据
            参数二:发送出去的数据大小(字节个数)
            参数三:服务端的IP地址(找到服务端主机)
            参数四:服务端程序的端口
         */
        byte[]bytes="哈哈哈,我是快乐的ljm".getBytes();
        DatagramPacket packet=new DatagramPacket(bytes, bytes.length,
                InetAddress.getLocalHost(),6666);
 
        // 3. 开始正式发送这个数据包的数据出去了
        socket.send(packet);
 
        System.out.println("客户端数据发送完毕");
        socket.close();// 释放资源
 
    }
}

服务端实现步骤


1.创建DatagramSocket对象并指定端口(服务端对象)--> 接韭菜的人

2.创建DatagramPacket对象接收数据--> 韭菜盘子

3.使用DatagramSocket对象的receive方法,传入DatagramPacket对象--> 开始接受韭菜

4.释放资源

public class Server {
    public static void main(String[] args) throws Exception {
        System.out.println("服务端启动");
        // 1. 创建一个服务端对象(创建一个接韭菜的人) 注册端口
        DatagramSocket socket=new DatagramSocket(6666);
 
        // 2.创建一个数据包对象,用于接收数据的(创建一个韭菜盒子)
        byte[] buffer=new byte[1024*64]; // 64KB 协议设定,不可以超过64KB
        DatagramPacket packet=new DatagramPacket(buffer,buffer.length);
 
        // 3.正式利用数据包来接收客户端发来的数据
        socket.receive(packet);
 
        // 4.从字节数组中,将接收到的数组直接打印出来
        // 接收多少就倒出多少
       int len= packet.getLength();
       String rs=new String(buffer,0,len);
        System.out.println(rs);
 
        System.out.println(packet.getAddress().getHostAddress());
        System.out.println(packet.getPort());
        socket.close(); // 释放资源
 
    }
 
}
目录
相关文章
|
1月前
|
网络协议 Linux 网络性能优化
Linux C/C++之TCP / UDP通信
这篇文章详细介绍了Linux下C/C++语言实现TCP和UDP通信的方法,包括网络基础、通信模型、编程示例以及TCP和UDP的优缺点比较。
36 0
Linux C/C++之TCP / UDP通信
|
6月前
|
网络协议 算法 Java
【Java网络编程】网络编程概述、UDP通信(DatagramPacket 与 DatagramSocket)
【Java网络编程】网络编程概述、UDP通信(DatagramPacket 与 DatagramSocket)
70 3
|
2月前
|
C语言
C语言 网络编程(七)UDP通信创建流程
本文档详细介绍了使用 UDP 协议进行通信的过程,包括创建套接字、发送与接收消息等关键步骤。首先,通过 `socket()` 函数创建套接字,并设置相应的参数。接着,使用 `sendto()` 函数向指定地址发送数据。为了绑定地址,需要调用 `bind()` 函数。接收端则通过 `recvfrom()` 函数接收数据并获取发送方的地址信息。文档还提供了完整的代码示例,展示了如何实现 UDP 的发送端和服务端功能。
|
3月前
|
网络协议 数据处理 C语言
网络编程进阶:UDP通信
网络编程进阶:UDP通信
183 0
|
3月前
|
C语言
【C语言】UDP通信
【C语言】UDP通信
39 0
|
4月前
|
网络协议 网络架构
【网络编程入门】TCP与UDP通信实战:从零构建服务器与客户端对话(附简易源码,新手友好!)
在了解他们之前我们首先要知道网络模型,它分为两种,一种是OSI,一种是TCP/IP,当然他们的模型图是不同的,如下
196 1
|
4月前
|
网络协议 Java 数据处理
(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述
就目前而言,多数网络编程的系列的文章都在围绕着计算机网络体系进行阐述,但其中太多理论概念,对于大部分开发者而言,用途甚微。因此,在本系列中则会以实际开发者的工作为核心,从Java程序员的角度出发,详细解读Java的网络编程核心内容。
|
6月前
|
网络协议 安全 Java
网络编程、网络编程的三要素、TCP/UDP通信、三次握手和四次挥手
网络编程、网络编程的三要素、TCP/UDP通信、三次握手和四次挥手
59 1
网络编程、网络编程的三要素、TCP/UDP通信、三次握手和四次挥手
|
4月前
基于QT实现的QQ聊天简易版(UDP通信版)
源码已经给小伙伴们整理好了,微信搜索 嵌入式工程之家 关注公众号回复 QQ 即可获得源码和详细操作指示哦~
103 0
|
6月前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信