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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP UDP传输 -> 正文阅读

[网络协议]TCP UDP传输

网络编程三要素

  1. ip地址(识别设备) ipv4 ipv8
    doc命令:ipconfig查看IP地址
    ping IP地址 查看网络是否畅通
    127.0.0.1 会送地址,本机地址,一般用于测试
  2. 端口(识别应用)总:0·65535 0-1023知名的网络端口(如果端口号被占用了就会启动失败)
  3. 协议(udp tcp)

InetAddress(表示地址)

表示Internet协议(ip)地址

public static InetAddress getByName(String host) 使用方法返回对象 里面写电脑名称或ip地址

InetAddress byName = InetAddress.getByName("DESKTOP-S5TEOK3");
InetAddress.getByName("192.168.1.106")

public String getHostName() DESKTOP-S5TEOK3 获取主机名
public String getHostAddress() 192.168.1.106 获取ip地址

udp协议

原理

两端各创建一个socket对象,这两个socket只是发送,接好数据的对象
发送端不管有没有人来接受都会运行到结束

发送数据

  1. 创建发送端的Socket对象( java提供了DatagramSocket类作为基于udp协议的socket)
    无参构造
DatagramSocket socket = new DatagramSocket();
  1. 创建数据,并把数据打包
    public DatagramPacket(byte buf[]数据, int length长度,
    InetAddress address主机, int port端口)
    构造一个数据包,发送长度为leng的数据包到指定主机上的指定端口号
 DatagramPacket packet = new DatagramPacket("STRING".getBytes(), 5, InetAddress.getByName("192.168.1.106"), 4356);
  1. 调用DatagramSocket对象的方法发送数据
    public void send(DatagramPacket p) 从此套接字发送数据包
 socket.send(packet);

4.关闭数据流close

接受数据

  1. 创建接受端的Socket对象(DatagramSocket)
    public DatagramSocket(int port) 指定端口号
DatagramSocket socket = new DatagramSocket(4356);
  1. 创建数据包,用于接受数据(仓库)
    public DatagramPacket(byte buf[], int length长度)用于接受长度为length数据包
 byte[] bytes = new byte[1024];
        DatagramPacket packet = new DatagramPacket(bytes, 1024);
  1. 调用DatagramSocket对象的方法接收数据
    public synchronized void receive(DatagramPacket p)
   socket.receive(packet);
  1. 解析数据包,并把数据在控制台显示
    public synchronized byte[] getData() 返回数据缓冲区 把写入的文件提取出来
    返回的数组中没写的内容会自动为空 不设定也会提取出来
byte[] data = packet.getData();
        System.out.println(new String(data));

public synchronized int getLength()返回要发送文件或接受到的数据长度

    int length = packet.getLength(); ///接受的长度
  1. 关闭数据流close

TCP协议

原理

可靠的网络协议
他在通信的两端各建立了一个Socket对象,从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。
java:使Socket对象来代表两端的通信端口,并通过Socket产生流来进行网络通信,
客户端:socket类
服务器端:serversocket类

发送数据

  1. 创建客户端的socket对象(Socket客户端套接字)
    public Socket(String hostip地址, int port端口) 创建流套接字并将其连接到指定ip地址的指定端口号
     Socket socket = new Socket("DESKTOP-S5TEOK3",5646);
  1. 获取输出流写数据
    public OutputStream getOutputStream()
 OutputStream outputStream = socket.getOutputStream();
   outputStream.write(95);

接受反馈 public InputStream getInputStream()

  1. 释放资源

public void shutdownOutput() 客户端告诉接受端接好结束 接受端不再接收东西 使用客户端对象调用

接受数据

  1. 创建服务器流端的Socket对象( ServerSocket)
    public ServerSocket(int port)端口
    public Socket accept() 侦听要连接到次套接字并接受它
ServerSocket serverSocket = new ServerSocket(5646);
 //进行监听
 Socket accept = serverSocket.accept();
  1. 获取数据流,读数据,并把数据显示在控制台
    public InputStream getInputStream()
 InputStream inputStream = accept.getInputStream();
        byte[] bytes = new byte[1024];
        int a;
        while ((a = inputStream.read(bytes)) != -1) {
            System.out.println(a);
            String s = new String(bytes, 0, a);
            System.out.println(s);
        }

反馈 getOutputStream
3. 释放资源

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:35:20  更:2021-07-22 14:37:31 
 
开发: 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/7 2:10:13-

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