​Java基础复习笔记 第16章:网络编程

1. 网络编程概述

1. 要想实现网络通信,需要解决的三个问题:
- 问题1:如何准确地定位网络上一台或多台主机
- 问题2:如何定位主机上的特定的应用
- 问题3:找到主机后,如何可靠、高效地进行数据传输2. 实现网络传输的三个要素:(对应解决三个问题)
> 通信要素1:IP地址。对应着解决定位网络上主机的问题
> 通信要素2:端口号。区分同一台主机上的不同进程。
> 通信要素3:通信协议。规范通信的规则,进而实现可靠、高效地进行数据传输

2. 要素1:InetAddress类的使用

1. 作用:准确地定位网络上一台或多台主机2. IP地址分类
> IP地址分类方式1 :IPv4 和 IPv6> IP地址分类方式2:公网地址( 万维网使用)和 私有地址( 局域网使用)> 192.168.开头的就是私有地址3. 本地回路地址:127.0.0.1  --->  localhost4. 域名:  www.atguigu.com    www.baidu.com   www.jd.comwww.mi.com   www.vip.com5. InetAddress的使用
5.1 作用:InetAddress类的一个实例表示一个具体的ip地址。5.2 实例化方式与常用方法
> 实例化:getByName(String host) / getLocalHost()
> 方法:getHostName() / getHostAddress()          

3. 要素2:端口号

> 唯一标识设备中的进程(应用程序)
> 不同的进程,需要使用不同的端口号
> 用两个字节表示的整数,它的取值范围是0~65535

4. 要素3:网络通信协议

1. 网络通信协议的目的:实现双方可靠、高效的数据传输。2. 网络参考模型
> OSI参考模型(7层,过于理想化)
> TCP/IP参考模型> 应用层:HTTP、FTP> 传输层:TCP、UDP> 网络层:IP> 物理+数据链路层

5. TCP网络编程、UDP网络编程

  • TCP、UDP的对比
  • 熟悉:TCP的三次握手、四次挥手。
  • 例题
    • 例题1:客户端发送内容给服务端,服务端将内容打印到控制台上。

    • 例题2:客户端发送文件给服务端,服务端将文件保存在本地。

    • 例题3:从客户端发送文件给服务端,服务端保存到本地。并返回“发送成功”给客户端。并关闭相应的连接。

6. URL网络编程

URL(Uniform Resource Locator):
1. 作用:
统一资源定位符,它表示 Internet 上某一资源的地址。2. URL的格式:
http://127.0.0.1:8080/examples/ym.png
应用层协议  ip地址  端口号  资源地址3. URL类的实例化及常用方法4. 下载指定的URL的资源到本地(了解)

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

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

相关文章

【云原生】K8s 管理工具 kubectl 详解(三)

金丝雀发布/灰度发布(Canary Release) 一、金丝雀发布简介 Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创…

c语言----函数

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理c语言中函数的相关知识点 适合有编程基础的人快速掌握。。。。 函数分类 系统函数: 系统内置的函数,include包含进入之后可以直接使用 用户函数: 用户自定义的函数,自己写。 用户函数…

软考高级之redis中使用zset实现延迟队列,你答对了么?

实现延迟队列的思路 zset的特性,带有分数的排序,以时间戳作为分数进行排序 添加任务 zdd取出任务 zrangbyscore执行任务 zrem 定时任务 public static void main(String[] args) {Jedis jedis new Jedis("ip", 6379);TimerTask task new …

Boost系列之asio库简易使用及遇到的问题(UDP)和思考

Boost系列之asio库简易使用及遇到的问题(UDP) 1、个人学习asio的一些步骤和看法 首先我都是直接文档怼上:Boost.Asio - 1.68.0 在看文档需要了解一下大概; Overview - 1.68.0 (boost.org),Using Boost.Asio - 1.68…

localhost 和 127.0.0.1 有什么区别?

当前端开发人员在本地调试时,他们经常与 localhost 互动,只需运行npm run命令就可以在浏览器中打开他们的网页,地址栏显示类似于 http://localhost:xxx/index.html的内容。 许多人在使用它时可能没有思考两者之间的区别。 考虑到我过去与开发…

SDK之嵌入式C

简介 嵌入式系统是指内置于各种设备中的微型计算机系统,与外部环境紧密交互,能够完成特定功能的计算机系统。这类系统广泛应用于工业控制、消费电子、汽车电子、医疗设备等领域。 嵌入式系统与普通的桌面计算机系统有很大不同,它们通常具有以下特点: 资源受限 嵌入式系统的…

探秘NumPy的奥秘:元素级操作与广播机制

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、NumPy基础与元素级操作 元素级操作的引入 元素级操作详解 广播机制初探 二、NumPy矩…

Linux操作指令大全

目录 🍉引言 🍉 基础命令 🍈pwd 🍈cd 🍈ls 🍈mkdir 🍈rmdir 🍈cp 🍈mv 🍈rm 🍉 文件操作命令 🍈cat 🍈tac …

C语言怎样利⽤好敏感的内存资源?

一、问题 内存是⼀个很敏感的资源,就像敏感肌肤⼀样,要百般呵护。同时,内存资源又很复杂,如何正确地使⽤内存资源不容易,能够正确并且合理地利⽤好内存资源就更不容易。 下⾯通过⼀个例⼦,来讲解怎样利⽤好…

深度神经网络——什么是混淆矩阵?

概述 混淆矩阵是一种在机器学习和数据科学中广泛使用的分析工具,用于评估分类模型的性能。它通过比较实际类别和模型预测的类别来提供模型性能的详细信息。以下是混淆矩阵的一些关键点: 结构:混淆矩阵是一个表格,通常有两行两列&…

QT全局气泡类型提示框【自动宽度、多屏自适应居中】

参考 qt 消息弹出框 &#xff0c;无框&#xff0c;缓慢自动消失_new messagetips格式-CSDN博客 进行改进。 直接上代码。 头文件&#xff1a; #pragma once#include <QObject> #include <QWidget>class MessageTips : public QWidget {Q_OBJECTpublic:MessageTi…

stm32-USART串口外设

配置流程 初始化配置 1.开启时钟&#xff08;打开USART和GPIO的时钟&#xff09; void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); void RCC_APB1Periph…

游戏子弹类python设计与实现详解

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、子弹类设计思路 1. 属性定义 2. 方法设计 三、子弹类实现详解 1. 定义子弹…

ubuntu openvoice部署过程记录,解决python3 -m unidic download 时 unidic无法下载的问题

github给的安装顺序&#xff1a; conda create -n openvoice python3.9 conda activate openvoice git clone gitgithub.com:myshell-ai/OpenVoice.git cd OpenVoice pip install -e .安装MeloTTS: pip install githttps://github.com/myshell-ai/MeloTTS.git python -m unid…

tailwindcss 使用

tailwindcss 使用 1、tailwind.config.js 配置参考2、tailwind.css 配置3、动态生成css类名4、配置了qiankun后&#xff0c;layer不解析了 1、tailwind.config.js 配置参考 module.exports {mode: "jit", // 3.0以上可不用配置&#xff0c;默认该模式&#xff0c;无…

新能源汽车的电驱热管理

前言 新能源汽车的电驱热管理是指维持电动汽车电池、电机和电控系统在适宜的工作温度范围内&#xff0c;保障车辆高效、安全、稳定运行的技术方案。随着新能源汽车的快速发展和普及&#xff0c;电驱热管理技术也日益成为关注焦点。本文将从电池、电机和电控系统三个方面介绍新…

cmake配置opencv与boost库

Cmake配置外部依赖库&#xff08;以Opencv和Boost为例&#xff09; Cmake对于外部依赖库&#xff0c;需要知道外部库的头文件路径&#xff0c;库文件路径以及库的名字。比如&#xff0c;对于要使用的Boost库&#xff0c;需要知道头文件的位置&#xff0c;库目录的位置以及库依…

牛逼!50.3K Star!一个自动将屏幕截图转换为代码的开源工具

1、背景 在当今快节奏的软件开发环境中&#xff0c;设计师与开发者之间的协同工作显得尤为重要。然而&#xff0c;理解并准确实现设计稿的意图常常需要耗费大量的时间和沟通成本。为此&#xff0c;开源社区中出现了一个引人注目的项目——screenshot-to-code&#xff0c;它利用…

vue富文本层级高

在Vue中处理复杂的层级关系&#xff0c;通常可以使用组件和递归组件来构建富文本树形结构。以下是一个简单的例子&#xff0c;展示了如何使用Vue组件来构建一个树形控件 <template><div><tree-node v-for"node in treeData" :key"node.id&quo…

Studio 3T 2024.3 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端,支持自然语言查询

Studio 3T 2024.3 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端&#xff0c;支持自然语言查询 The professional GUI, IDE and client for MongoDB 请访问原文链接&#xff1a;https://sysin.org/blog/studio-3t/&#xff0c;查看最新版。原创作品&#xff…