Java笔记_21(网络编程)

news2024/11/26 23:45:10

Java笔记_21

  • 一、网路编程
    • 1.1、初始网络编程
    • 1.2、网络编程三要素
    • 1.3、IP
    • 1.4、端口号
    • 1.5、协议
    • 1.6、UDP协议

一、网路编程

1.1、初始网络编程

什么是网络编程

在网络通信协议下,不同计算机上运行的程序,进行的数据传输。

  • 应用场景:即时通信、网游对战、金融证券、国际贸易、邮件、等等。不管是什么场景,都是计算机跟计算机之间通过网络进行数据传输。
  • Java中可以使用java.net包下的技术轻松开发出常见的网络应用程序。

常见的软件架构

在这里插入图片描述
在这里插入图片描述

BS架构的优缺点:

  • 不需要开发客户端,只需要页面+服务端
  • 用户不需要下载,打开浏览器就能使用
  • 如果应用过大,用户体验收到影响

CS架构的优缺点:

  • 画面可以做的非常精美,用户体验好
  • 需要开发客户端,也需要开发服务端
  • 用户需要下载和更新的时候太麻烦

1.2、网络编程三要素

IP

  • 设备在网络中的地址,是唯一的标识。

端口号

  • 应用程序在设备中唯一的标识。

协议

  • 数据在网络中传输的规则,常见的协议有UDP、TCP、http、https、ftp。

1.3、IP

全称:Internet Protocol,是互联网协议地址,也称IP地址。是分配给上网设备的数字标签。

通俗理解:上网设备在网络中的地址,是唯一的

IPv4
全称: Internet Protocol version 4,互联网通信协议第四版

采用32位地址长度,分成4组

  • 目前的主流方案,最多有2^32次方个ip,目前已经用完了
    在这里插入图片描述
    lPv6

全称: Internet Protocol version 6,互联网通信协议第六版。
由于互联网的蓬勃发展,IP地址的需求量愈来愈大,而IPv4的模式下IP的总数是有限的。

采用128位地址长度,分成8组

  • 最多有2^128次方个ip

在这里插入图片描述

lPv4的地址分类形式

  • 公网地址(万维网使用)和私有地址(局域网使用)。
  • 192.168.开头的就是私有址址,范围即为192.168.0.0–192.168.255.255,专门为组织机构内部使用,以此节省IP

特殊IP地址
127.0.0.1,也可以是localhost:是回送地址也称本地回环地址,也称本机IP,永远只会寻找当前所在本机。

常用的CMD命令

ipconfig: 查看本机IP地址
ping: 检查网络是否连通

lnetAddress的使用

方法名称说明
static InetAddress getByName(String host)确定主机名称的IP地址。主机名称可以是机器名称,也可以是IP地址
string getHostName( )获取此IP地址的主机名
string getHostAddress()返回文本显示中的IP地址字符串
package threadPool.Dome3;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class Dome {
    public static void main(String[] args) throws UnknownHostException {
        //确定主机名称的IP地址。主机名称可以是机器名称,也可以是IP地址
        InetAddress address =  InetAddress.getByName("Smulll");
        System.out.println(address);//Smulll/10.200.27.51
        //获取主机名称
        System.out.println(address.getHostName());//Smulll
        //获取主机ip地址
        System.out.println(address.getHostAddress());//10.200.27.51
    }
}

1.4、端口号

应用程序在设备中唯一的标识。

端口号:

  • 由两个字节表示的整数,取值范围:0~65535
  • 其中0~1023之间的端口号用于一些知名的网络服务或者应用。
  • 我们自己使用1024以上的端口号就可以了。

注意:一个端口号只能被一个应用程序使用
在这里插入图片描述

1.5、协议

计算机网络中,连接和通信的规则被称为网络通信协议

  • OSI参考模型:世界互联协议标准,全球通信规范,单模型过于理想化,未能在因特网上进行广泛推广
  • TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。

在这里插入图片描述
UDP协议

  • 用户数据报协议(User Datagram Protocol)
  • UDP是面向无连接通信协议。
  • 速度快,有大小限制一次最多发送64K,数据不安全,易丢失数据

在这里插入图片描述

TCP协议

  • 传输控制协议TCP(Transmission Control Protocol)
  • TCP协议是面向连接的通信协议。
  • 速度慢,没有大小限制,数据安全。
    在这里插入图片描述

1.6、UDP协议

发送数据

  1. 找快递公司
    创建发送端的DatagramSocket对象
  2. 打包礼物
    数据打包 (DatagramPacket)
  3. 快递公司发送包裹
    发送数据
  4. 付钱走人
    释放资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/525123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(一)SAS初识

1、SAS常用工作窗口 “结果”(Result)窗口——管理SAS程序的输出结果; “日志”(Log)窗口——记录程序的运行情况; “SAS资源管理器”(Explore)窗口; “输出”&#xff0…

洛谷P1217-回文质数 Prime Palindromes

洛谷P1217-回文质数 Prime Palindromes 这个题目我做出来了但是超时了,时间复杂度有点高,主要是因为我用了大量的循环, 所以我这个是比较暴力的解法,下面我分析我的暴力代码 首先是判断回文数的函数 第一步将标识传入参数是不是…

[数据集][目标检测]篮球数据集VOC格式7398张

数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):7398 标注数量(xml文件个数):7398 标注类别数:1 标注类别名称:["basketball"]…

详解MNIST数据集下载、解析及显示的Python实现

Content MNIST数据集基本介绍下载MNIST数据集到本地解析MNIST数据集显示MNIST数据集中训练集的前9张图片和标签 随着图像处理、计算机视觉、机器学习,甚至深度学习的蓬勃发展,一个良好的数据集作为学习和测试相关算法非常重要。MNIST数据集对于想要学习和…

PMP 高项 07-项目质量管理

项目质量管理 概念 质量的基本概念 克劳斯比:符合要求 戴明:低成本条件下可预测的一致性和可靠度,适应市场需要 朱兰:适用性,满足客户需要 国际标准化组织:质量是反映实体(产品、过程或活动等…

中间件容器化部署实现方案的前期调研

中间件容器化部署是为了实现GitOps模式的持续交付,实现部署即代码。痛点在于大多数中间件都是有状态的,本篇介绍如何实现有状态中间件的容器化部署。 常见中间件要实现容器化部署,需要解决以下问题: 对于网关类中间件,作为流量入口,虽然是无状态类型的中间件,但由于需要…

flask实现S3 Web客户端下载文件

import io from minio import Minio from minio.error import S3Error from flask import Flask, jsonify, render_template, request, send_file# 实例化 Flask 应用 app Flask(__name__)# 配置 MinIO 客户端 minio_client Minio("192.168.2.110:58894",access_ke…

Vue CLI 初始化脚手架

3.1. 初始化脚手架 3.1.1. 说明 Vue脚手架是Vue官方提供的标准化开发工具(开发平台)最新的版本是 4.x文档 Vue CLI 3.1.2. 具体步骤 如果下载缓慢请配置npm淘宝镜像npm config set registry http://registry.npm.taobao.org全局安装 vue/cli npm ins…

Python BP算法模板

BP算法模板 神经网络结构 三大基本结构 权重(轴突、树突) 权重的矩阵表示 数值(胞体) 数值处理方式 sigmoid 函数 def __sigmoid(self,x):return 1 / (1 np.exp(-x))sigmoid 的导函数 def __sigmoid_prime(self,x):return x * (1 - x)sigmoid 函数图像 其目的是将数值限制…

Java多线程synchronized Lock volatile,看完这一篇就够了

线程安全问题 一、对线程安全的理解(实际上是内存安全)二、线程同步的实现方法synchronized实现同步Lock实现同步volatile实现同步JUC的Callable实现同步 三、守护线程四、ThreadLocal原理和使用场景五、Thread类的常用方法,以及线程的状态六…

Linux下使用Mysql 第二天

目录 Mysql数据库API库 编写hello应用链接函数库 MySQL API常用函数 总体印象 初始化 Makefile 管理 连接数据库关闭连接 读取数据 查询表数据 获取结果集 解析结果集 释放结果集 获取列数 获取表头 实例程序 MySQL tools实现 思路分析 程序实现 中文问题 …

MS iCraft Z790ITX WIFI 电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件型号驱动情况 主板MS iCraft Z790ITX WIFI 处理器Intel Core i5-13400已驱动 内存Asgard DDR5 6400CL32 16GBx2 RGB已驱动 硬盘西数 WDS250G3X0C-00SJG0 ( SN750) …

如何设计API返回码(错误码)?

一、前言 客户端请求 API,通常需要通过返回码来判断 API 返回的结果是否符合预期,以及该如何处理返回的内容等 相信很多同学都吃过返回码定义混乱的亏,有的 API 用返回码是 int 类型,有的是 string 类型,有的用 0 表…

ansible 常用用例

目录 一、说明 二、创建 ansible 环境 三、实验操作 四、install_ansible.sh 脚本内容 一、说明 该文档是日常经常使用的模板,通过该例子让更多的初学者了解ansible 剧本的写法,很多情况,可以按照该模版来套用即可。 读者不需要下载…

6.深入理解Mysql事务隔离级别与锁机制

MySQL性能调优 1. 概述2. 事务及其ACID属性2.1并发事务带来的问题2.2 事务隔离级别 3. 锁详解3.1 锁分类3.1.1 表锁3.1.2 行锁3.1.3 间隙锁(Gap Lock)3.1.4 临键锁(Next-key Locks)3.1.5 行锁分析3.1.6 查看INFORMATION_SCHEMA系统库锁相关数据表3.1.7 死锁3.1.8 锁优化建议 4.…

iOS - postgetAFNetworking

GET和POST HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源&…

OpenGL高级-实例化

知识点 假如你有一个有许多模型的场景,而这些模型的顶点数据都一样,只是进行了不同的世界空间的变换。想象一下,有一个场景中充满了草叶:每根草都是几个三角形组成的。你可能需要绘制很多的草叶,最终一次渲染循环中就肯…

每日一练 | 华为认证真题练习Day45

1、应用数据经过数据链路层处理后一定携带了MAC地址。 A. 对 B. 错 2、某网络工程师在输入命令行时提示如下信息: Error:Unrecognized command found at’^’position. 对于该提示信息说法正确的是? A. 输入命令不完整 B. 没有查找到关键字 C. 输…

LeetCode 1054 距离相等的条形码

LeetCode 1054 距离相等的条形码 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/distant-barcodes 博主Github:https://github.com/GDUT-Rp/LeetCode 题目: 在一个仓库里,有一排条…

二叉树总结

文章目录 树需要掌握的基本概念二叉树基本特点满二叉树性质 完全二叉树性质 二叉搜索树(二叉排序树)Binary Search Tree(BST)性质 平衡二叉树性质 红黑树五大性质 B树 二叉树的存储方式链式存储顺序存储 二叉树的遍历 树需要掌握的基本概念 1、节点、根…