【JavaSE】Java基础语法(三十九):网络编程入门

news2024/12/24 3:53:53

文章目录

  • 1. 网络编程概述
  • 2. 网络编程三要素
  • 3. IP地址
  • 4. InetAddress
  • 5. 端口和协议


在这里插入图片描述

在这里插入图片描述


1. 网络编程概述

  • 计算机网络
    是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络
    操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

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

2. 网络编程三要素

  • IP地址
    要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定
    要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号。也就是设备的标识

  • 端口
    网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程序,那么在网络通信
    时,如何区分这些应用程序呢?如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的应用程序了。也就是应用程序的标识

  • 协议
    通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。常见的协议有UDP协议和TCP协议

3. IP地址


IP地址:是网络中设备的唯一标识

  • IP地址分为两大类

    • IPv4:是给每个连接在网络上的主机分配一个32bit地址。按照TCP/IP规定,IP地址用二进制
      来表示,每个IP地址长32bit,也就是4个字节。例如一个采用二进制形式的IP地址是
      “11000000 10101000 00000001 01000010”,这么长的地址,处理起来也太费劲了。为了
      方便使用,IP地址经常被写成十进制的形式,中间使用符号“.”分隔不同的字节。于是,上面
      的IP地址可以表示为“192.168.1.66”。IP地址的这种表示法叫做“点分十进制表示法”,这显然
      比1和0容易记忆得多
    • IPv6:由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP
      的分配越发紧张。为了扩大地址空间,通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,这样就解决了网络地址资源数量不够的问题

  • DOS常用命令

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

  • 特殊IP地址
    • 127.0.0.1:是回送地址,可以代表本机地址,一般用来测试使用

4. InetAddress


InetAddress:此类表示Internet协议(IP)地址

  • 相关方法
    在这里插入图片描述

  • 代码演示

public class InetAddressDemo {
	public static void main(String[] args) throws UnknownHostException {
		//InetAddress address = InetAddress.getByName("itheima");
		InetAddress address = InetAddress.getByName("192.168.1.66");
		//public String getHostName():获取此IP地址的主机名
		String name = address.getHostName();
		//public String getHostAddress():返回文本显示中的IP地址字符串
		String ip = address.getHostAddress();
		System.out.println("主机名:" + name);
		System.out.println("IP地址:" + ip);
	}
}

5. 端口和协议

  • 端口
    设备上应用程序的唯一标识

  • 端口号
    用两个字节表示的整数,它的取值范围是065535。其中,01023之间的端口号用于一些知
    名的网络服务和应用,普通的应用程序需要使用1024以上的端口号。如果端口号被另外一个
    服务或应用所占用,会导致当前程序启动失败

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

  • UDP协议
    - 用户数据报协议(User Datagram Protocol)
    - UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来
    说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发
    出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。
    - 由于使用UDP协议消耗系统资源小,通信效率高,所以通常都会用于音频、视频和普通数据
    的传输
    - 例如视频会议通常采用UDP协议,因为这种情况即使偶尔丢失一两个数据包,也不会对接收
    结果产生太大影响。但是在使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证
    数据的完整性,因此在传输重要数据时不建议使用UDP协议

  • TCP协议
    - 传输控制协议 (Transmission Control Protocol)
    - TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后
    再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客
    户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”
    - 三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证
    连接的可靠
    第一次握手,客户端向服务器端发出连接请求,等待服务器确认
    第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求
    第三次握手,客户端再次向服务器端发送确认信息,确认连接
    - 完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连
    接的特性,TCP协议可以保证传输数据的安全,所以应用十分广泛。例如上传文件、下载文
    件、浏览网页等



在这里插入图片描述

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

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

相关文章

MyBatis 环境搭建+基本使用

目录 MyBatis创建MyBatis环境搭建MyBatis模式开发MyBatis 获取动态参数(查询操作)${} 直接替换#{} 占位符模式替换like查询(模糊查询)多表查询一对一的表映射一对多的表映射 增、删、改操作改操作删除操作增加操作添加用户添加用户…

chatgpt赋能python:Python中的英文单词

Python中的英文单词 Python是一种流行的编程语言,它具有人类易读性、功能强大、支持多种编程范例等特点。Python中包含着大量的英文单词,这些单词在Python编程中极为重要,因为它们直接影响代码的可读性和理解难度。本文将介绍一些最常用的Py…

Go开发学习 | 如何使用Gomail.v2模块包发送邮箱验证码消息及附件学习记录

欢迎关注「全栈工程师修炼指南」公众号 点击 👇 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习! “ 花开堪折直须折,莫待无花空折枝。 ” 作者主页:[ https://www.weiyigeek.top ] 博客&…

vulhub-Jarbas(易)

打靶练习Jarbas 0x00 部署0x01 信息收集:端口扫描、服务发现0x02 路径爬取0x03 反弹shell0x04 内网信息收集0x05 crontab定时任务提权0x06 总结 0x00 部署 靶机:下载地址 宿主机:kali2021版本 0x01 信息收集:端口扫描、服务发现…

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记

写在前面的话:此系列文章为笔者学习计算机组成原理时的个人笔记,分享出来与大家学习交流。使用教材为唐朔飞第3版,笔记目录大体与教材相同。 网课 计算机组成原理(哈工大刘宏伟)135讲(全)高清_…

git (本地仓库)和(远程仓库)之间的代码推送:013

这里先说明一下循序: 1. 创建(远程仓库)和(本地仓库) 2. 创建(远程仓库)和(本地仓库)之间的链接 3. 将(本地仓库)的代码推通过命令送到(远程仓库);将(本地仓库)的代码通过(TortoiseGit小乌龟)推送到(远程仓库) 1. 创建(远程仓库)和(本地仓库)&#xff0c…

PHP异步:在PHP中使用 fsockopen curl 实现类似异步处理的功能

PHP从主流来看,是一门面向过程的语言,它的最大缺点就是无法实现多线程管理,其程序的执行都是从头到尾,按照逻辑一路执行下来,不可能出现分支,这一点是限制php在主流程序语言中往更高级的语言发展的原因之一…

C++实现sqlite单表增删改查的详细步骤

1.环境准备 coding之前需要先安装好C的集成开发环境, 我这里选择的是Visual Studio 2022,本来想使用CLion的, 但是破解太麻烦,懒得整了。 Visual Studio 2022 2.项目创建及编码 启动visual studio, 点击创建项目,选…

《MYSQL必知必会》读书笔记1

目录 行 主键 MYSQL工具 使用MYSQL 连接 检索数据 检索(SELECT) 限制结果(LIMIT) 排序检索(ORDER BY) 过滤数据(WHERE) 过滤数据(AND、OR) 通配符…

软件测试总结

软件生命周期(SDLC)的六个阶段 1、问题的定义及规划 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。 2、需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要…

ML | 6 支持向量机

ML | 6 支持向量机 文章目录 ML | 6 支持向量机SVM介绍线性不可分数据线性可分数据 寻找最大间隔分类器求解的优化问题 SMO高效优化算法简化版SMO处理小规模数据集伪代码程序清单 完整Platt SMO 算法加速优化完整 Platt SMO的支持函数完整Platt SMO算法中的优化例程完整Platt S…

记录--Vue3自定义一个Hooks,实现一键换肤

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 核心 使用CSS变量, 准备两套CSS颜色, 一套是在 light模式下的颜色,一套是在dark模式下的颜色dark模式下的 CSS 权重要比 light 模式下的权重高, 不然当我们给html添加自定义属性[data-themedark]的时候…

CVPR 2023 | 南大王利民团队提出LinK:用线性核实现3D激光雷达感知任务中的large kernel...

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【Transformer】微信交流群 【CVPR 2023】LinK:用线性核实现3D激光雷达感知任务中的large kernel 本文介绍我们媒体计算研究组(MCG)在3D激…

chatgpt赋能python:Python中的提取函数——数据清洗中必不可少的利器

Python中的提取函数——数据清洗中必不可少的利器 数据清洗是数据分析过程中不可或缺的一步,而Python中的提取函数则是数据清洗中必不可少的利器。本文将重点介绍一些Python中常用的提取函数,以帮助数据分析师更好地应对实际问题。 什么是提取函数&…

react antd Modal里Form设置值不起作用

问题描述: react antd Modal里Form设置值不起作用,即使用form的api。比如:编辑时带出原有的值。 造成的原因:一般设置值都是在声明周期里设置,比如:componentDidMounted里设置,hook则在useEff…

云网络安全与数据中心安全

近年来,许多云架构师宣称随着公共云的采用,网络安全性将消亡。然而,网络安全仍然是最大的安全市场之一,并且是每个主要云服务提供商 (CSP) 在过去几年中推出重要新产品的领域。 网络对安全仍然至关重要,即使在云中也是…

【软考系统规划与管理师笔记】第4篇 信息技术服务知识

目录 1 产品、服务和信息技术服务 1.1 产品 1.2 服务 1.3 信息技术服务 2运维、运营和经营 2.1运维 2.2运营 2.3经营 3 IT治理 4 IT服务管理 4.1传统管理方式 4.2体系化管理方式 5项目管理 6质量管理理论 6.1质量管理发展历史 6.2质量管理常见理论方法 6.3质…

【公网远程Jellyfin】——本地部署Jellyfin影音服务器

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及,各种各样的使用需求也被开发出来&…

面向Java开发者的ChatGPT提示词工程(5)

GPT 的局限性 在探讨开发大型语言模型应用程序时,我们必须认识到 GPT 存在一些局限性。这些限制对于我们保持清醒的头脑至关重要。 尽管在 GP T的训练过程中融入了大量知识,但它并非能够完美地记住所见之物,并且对这些知识的边界了解有限。…

玩转用户旅程地图

图:史江鸿 从事需求分析和产品设计工作已经有几个年头了,我很享受这个职业。因为在这段职业历程中,我学到了很多有意思的方法和工具,用户旅程地图就是其中一个。 如今在国内外许多IT公司,用户旅程地图已经成为需求分析…