IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 黑马程序员UDP入门 -> 正文阅读

[网络协议]黑马程序员UDP入门

标题UDP协议特点

? \bullet ? UDP是一种无连接、不可靠传输的协议。
? \bullet ? 将数据源IP,目的地IP和端口以及数据封装成数据包,大小限制在64KB内,直接发送出去即可。
DatagramPacket:数据包对象

构造器说明
public DatagramPacket(byet[] buf,int length, InetAddress address,int port)创建发送端数据包对象 buf:要发送的内容,字节数组。length:要发送内容的字节长度。address:接收端的IP地址对象。port:接收端端口号
public DatagramPacket(byet[] buf,int length)创建接收端的数据包对象 buf:用来存储接受的内容。 length:能接收内容的长度。

DatagramSocket:发送端和接收端对象

构造器说明
public DatagramSocket()创建发送端的socket对象,系统随机分配一个端口号。
public DatagramSocket(int port)创建接收端的Socket对象并指定端口号

DatagramSocket类成员方法

方法说明
public void send(DatagramPacket dp)发送数据包
public void receive(DatagramPacket p)接收数据包

UDP 一发 一收

接收端代码

package com.lp.d2_udp1;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

/*
* 接收端
* */
public class ServerDemo2 {
    public static void main(String[] args) throws Exception {
        System.out.println("=======服务端启动=======");
//        1、创建接收端的数据包对象:注册端口
        DatagramSocket socket=new DatagramSocket(8888);
//        2、创建一个数据包对象接受数据
        byte[] buffer=new byte[1024*64];
        DatagramPacket packet=new DatagramPacket(buffer, buffer.length);
//        3、等待接收数据
        socket.receive(packet);
//        4、取出数据即可
        int length=packet.getLength();
        String rs=new String(buffer,0,length);
        System.out.println("收到了:"+rs);
        String ip=packet.getSocketAddress().toString();
        System.out.println(ip);
        socket.close();
    }
}

发出端代码

package com.lp.d2_udp1;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/*
* 发送端
* */
public class ClientDemo1 {
    public static void main(String[] args) throws Exception {
        System.out.println("=======客户端启动========");
//        1、创建发送端对象:发送端自带默认端口
        DatagramSocket socket=new DatagramSocket();
//        2、创建一个数据包对象封装数据
        byte[] buffer="诸天气荡荡,我道日兴隆".getBytes();
        DatagramPacket packet=new DatagramPacket(buffer, buffer.length, InetAddress.getLocalHost(),8888);
//        3、发送数据出去
        socket.send(packet);
        socket.close();
    }

}
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:57:20  更:2022-07-17 17:01:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 12:12:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码