当前位置: 首页 > news >正文

​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的资源到本地(了解)

相关文章:

  • Ansible自动化运维中的Setup收集模块应用详解
  • 码蹄集部分题目(2024OJ赛16期;单调栈集训+差分集训)
  • 数据结构——栈(详细分析)
  • 渗透测试 一个很奇怪的支付漏洞
  • Day17学习Java
  • 1小时从0开始搭建自己的直播平台(详细步骤)
  • BGP策略实验
  • 向传音手机学习产品市场定位与产品需求定义
  • 数字签名:确保信息完整性和身份验证的关键技术
  • C++入门:从C语言到C++的过渡(2)
  • doxygen 1.11.0 使用详解(九)——包含公式
  • 技术周总结 2024.05.20~05.26 (Java架构师 数据库理论 MyBatis)
  • 1098: 堆的判断
  • Tkinter描述
  • Flutter 中的 ElevatedButton 小部件:全面指南
  • 【译】理解JavaScript:new 关键字
  • Docker下部署自己的LNMP工作环境
  • in typeof instanceof ===这些运算符有什么作用
  • JavaScript对象详解
  • spring boot 整合mybatis 无法输出sql的问题
  • 阿里研究院入选中国企业智库系统影响力榜
  • 给github项目添加CI badge
  • 那些被忽略的 JavaScript 数组方法细节
  • 责任链模式的两种实现
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 移动端高清、多屏适配方案
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (rabbitmq的高级特性)消息可靠性
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .Net MVC + EF搭建学生管理系统
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET是什么
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • .Net中ListT 泛型转成DataTable、DataSet
  • .Net组件程序设计之线程、并发管理(一)
  • /etc/fstab和/etc/mtab的区别
  • @Autowired @Resource @Qualifier的区别
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [20140403]查询是否产生日志
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [Algorithm][动态规划][子序列问题][最长递增子序列][摆动序列]详细讲解
  • [BeginCTF]真龙之力
  • [Big Data - Kafka] kafka学习笔记:知识点整理
  • [BZOJ4010]菜肴制作
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [C++]命名空间等——喵喵要吃C嘎嘎