Java | 网络编程

news2024/11/24 23:05:52

不爱生姜不吃醋⭐️
如果本文有什么错误的话欢迎在评论区中指正
与其明天开始,不如现在行动!

文章目录

  • 🌴前言
  • 🌴一、网络编程
    • 1.概念
    • 2.常见软件架构
  • 🌴二、网络编程三要素
    • 1. IP
    • 2. 端口号
    • 3.协议
  • 🌴总结


🌴前言

文章内容是关于网络编程方面的,包括网络编程的概念和常见的软件架构,还有网络编程三要素等知识,图文结合易于理解。


🌴一、网络编程

1.概念

计算机跟计算机之间通过网络进行数据传输。

2.常见软件架构

C/S:Client/Server客户端/服务端

在用户本地需要下载并安装客户端程序,在远程有一个服务器端程序。适合定制专业化的办公类软件,比如:QQ/英雄联盟等。

在这里插入图片描述
优缺点

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

B/SBrowser/Server浏览器/服务器

只需要一个浏览器,用户通过不同的网址。客户访问不同的服务器。适合移动互联网应用,可以随时随地访问系统,例如:京东网页/淘宝网页等

在这里插入图片描述
优缺点

  1. 不需要开发客户端,只需要开发服务端
  2. 用户不需要下载,打开浏览器就能使用
  3. 如果应用过大,用户体验受到影响

🌴二、网络编程三要素

网络编程三要素:IP、端口号、协议

1. IP

全称:Internet Protocol,是互联网协议地址,也称IP地址。是分配给上网设备的数字标签。通俗理解:设备在网络中的地址,是唯一的标识。

常见的IP分类:IPv4 和 IPv6

IPv4
全称:Internet Protocol version 4,互联网通信协议第四版,采用32位地址长度,分成4组。
在这里插入图片描述
这里可以看出,它总共也只有不到43亿个IP,是不够用的,在2019年11月26日全部分配完毕。


IPv6
由于互联网的蓬勃发展,IP地址的需求量愈来愈大,为了解决IP不够用的问题,推出了IPv6。全称:Internet Protocol version 6,互联网通信协议第六版。采用128位地址长度,分成8组。
在这里插入图片描述
IPv6最多有2^128个IP,形象点说,它可以为地球上每一粒沙子都设定IP

常见的CMD命令:
ipconfig:查看本机IP地址
ping:检查网络是否联通

Java中的InetAddress类的使用:

public class Test {
    public static void main(String[] args) throws UnknownHostException {
        //确定主机名称(可以是主机名称,也可以是IP地址)
        InetAddress name = InetAddress.getByName("LAPTOP-F2POP1");//LAPTOP-F2POP1:是我自己的主机名
        //获取此主机的IP地址的主机名
        String hostName = name.getHostName();
        System.out.println(hostName);
        //返回IP地址
        String hostAddress = name.getHostAddress();
        System.out.println(hostAddress);
    }
}

2. 端口号

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

注:一个端口号只能被一个应用程序使用。

3.协议

数据网络中的传输的规则。
计算机网络中,连接和通信的规则被称为网络通信协议。常见的协议:UDP、TCP、HTTP、HTTPS、FTP。

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

在这里插入图片描述
有关于协议的详细内容可以以查看文章:
Java | UDP协议
Java | TCP协议


🌴总结

文章内容是关于网络编程方面,多加练习熟能生巧。
本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家😘!!!


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

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

相关文章

Mybatis学习笔记7 参数处理专题

Mybatis学习笔记6 使用时的一些小技巧_biubiubiu0706的博客-CSDN博客 1.单个简单类型参数 2.Map参数 3.实体类参数 4.多参数 5.Param注解(命名参数) 6.Param源码分析 建表 插入点数据 新建模块 pom.xml <?xml version"1.0" encoding"UTF-8"?&…

STM32 USB CDC 虚拟串口

// 用虚拟串口(USB CDC VCP)感觉有些不稳定&#xff0c;尤其是下位机掉电后再上电&#xff0c;上位机虚拟的那个串口根本不能用&#xff0c;还有就是 // 必须等虚拟串口出来后且知道串口号上位机才可以执行打开操作// 上面是实际情况&#xff0c;但并不是STM32的USB不行&#x…

JUnit5单元测试提示“Not tests were found”错误

JUnit5单元测试提示“Not tests were found”错误&#xff0c;如下图所示&#xff1a; 或者 问题解析&#xff1a; 1&#xff09;使用Test注解时&#xff0c;不能有返回值&#xff1b; 2&#xff09;使用Test注解时&#xff0c;不能使用private关键字&#xff1b; 存在以上情…

C语言——贪吃蛇小游戏

目录 一、ncurse 1.1 为什么需要用ncurse&#xff1a; 1.2 ncurse的输入输出&#xff1a; 1.2.1 如何使用ncurse&#xff1a; 1.2.2 编译ncurse的程序&#xff1a; 1.2.3 测试输入一个按键ncurse的响应速度&#xff1a; 1.3 ncurse上下左右键获取&#xff1a; 1.3.1 如…

移动 Web 第一天

目标&#xff1a;使用位移、缩放、旋转、渐变效果丰富网页元素的呈现方式。 文章目录 01-平面转换简介平移定位居中案例-双开门旋转转换原点案例-时钟多重转换缩放案例-播放特效倾斜 02-渐变线性渐变案例-产品展示径向渐变 03-综合案例导航-频道箭头旋转频道列表 渐变按钮搜索…

什么是AJAX?如何使用原生JavaScript进行AJAX请求?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是AJAX&#xff1f;⭐如何使用原生JavaScript进行AJAX请求&#xff1f;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为…

【ONE·Linux || 进程间通信(一)】

总言 进程间通信&#xff1a;简述进程间通信&#xff0c;介绍通信方式之一&#xff0c;管道通信&#xff08;匿名、名命&#xff09;。 文章目录 总言1、进程间通信简述2、管道2.1、简介2.2、匿名管道2.2.1、匿名管道的原理2.2.2、编码理解&#xff1a;用fork来共享管道2.2.2.…

Rocketmq--消息发送和接收演示

使用Java代码来演示消息的发送和接收 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.0.2</version> </dependency> 1 发送消息 消息发送步骤: 创建…

三维模型3DTile格式轻量化压缩必要性分析

三维模型3DTile格式轻量化压缩必要性分析 理解3DTile格式轻量化压缩的必要性&#xff0c;首先需要理解三维模型的复杂性和数据量。三维模型通常包含大量的顶点、面片和纹理信息&#xff0c;这使得其数据量非常大&#xff0c;尤其对于大规模的三维地理空间数据&#xff0c;例如城…

Python:为何成为当下最热门的编程语言?

文章目录 &#x1f34b;引言&#x1f34b;1. 简单易学&#x1f34b;2. 多领域应用&#x1f34b;3. 强大的社区支持&#x1f34b;4. 丰富的库和框架&#x1f34b;5. 跨平台兼容&#x1f34b;6. 开源和免费&#x1f34b;7. 数据科学和人工智能的崛起&#x1f34b;8. 自动化和脚本…

YOLOv3深度解析【未完待续】

概况 &#xff08;1&#xff09;YOLOv3是YOLO系列第一次引入残差连接来解决深度网络中的梯度消失问题&#xff08;是不是第一次&#xff0c;有待你后面考证&#xff09;&#xff0c;实际用的backbone是DarkNet53 &#xff08;2&#xff09;最显著的改进&#xff0c;也是对你涨…

【SpringMVC】基于 Spring 的 Web 层MVC 框架

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理SpringMVC : 基于 Spring 的 Web 层MVC 框架 &#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下…

五种利用ChatGPT帮助大学申请的方法

自去年末以来&#xff0c;ChatGPT和其他生成式人工智能正式进入公众视野&#xff0c;并在超多领域广泛应用。在教育领域&#xff0c;学生使用ChatGPT来写论文成了普遍现象。各教育组织和专家褒贬不一。 一些教授严厉禁止使用人工智能来写作业&#xff0c;认为是学术欺诈。著名…

Windows下SpringBoot连接Redis的正确使用姿势

1. 安装Redis 1.1通过wsl安装redis 参考官方安装文档&#xff0c;需要在wsl2上安装redis服务。 注意我们启动redis的方式&#xff1a; First way&#xff1a;采用官方文档的方式&#xff1a;sudo service redis-server start&#xff0c;关闭wsl后redis在后台仍能运行&…

堆的介绍与堆的实现和调整

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 ​​堆的介绍&#xff1a; 关于堆的实现及相关的其他问题&#xff1a; 堆的初始化&#xff1a; 堆的销毁&#xff1a; 插入建堆&#xff1a; 堆向上调整&#xff1a; 交换两个节点的值&#xff1a; 堆向下调整&a…

STM32单片机——ADC数据采集

STM32单片机——ADC数据采集 ADC相关理论概述CubeMX工程配置HAL库程序设计固件库程序设计 参考博文1&#xff1a;STM32——ADC采集参考博文2&#xff1a;2022年8月12日STM32——ADC采集 ADC相关理论概述 ADC是什么 全称&#xff1a;Analog-to-Digital Converter&#xff0c;指…

三步实现Mybatis(Mybatis-Plus)多数据源配置

前言 要实现多数据源可以采用dynamic-datasource或者mybatis-mate&#xff0c;本文就以dynamic-datasource为例 dynamic-datasource简介 springboot 快速集成多数据源的启动器 使用文档(opens new window) 支持 数据源分组 &#xff0c;适用于多种场景 纯粹多库 读写分离 一主…

springcloud3 分布式事务-seata的搭建与微服务整合3

一 seata的搭建 1.1 seata的配置 springcloud3 Seata分布式事务以及seata服务搭建1_健康平安的活着的博客-CSDN博客 二 seata微服务的配置 2.1 结构 2.2 修改配置 客户端的配置要和服务端配置一致。在seata的cofig/registry.conf文件中。 3个微服务模块均按这样的配置…

记录本地Nginx发布vue项目

一、前端&#xff1a;vue-cli-service build 二、下载Nginx&#xff0c;并创建目录&#xff0c;放置静态文件 三、在conf目录下nginx.conf文件配置代理服务 server {listen 8787;server_name localhost;location / {root app/dist; #前端dist包地址index index.html…

Vue3搭配Element Plus 实现候选搜索框效果

直接上代码 <el-col :span"14" class"ipt-col"><el-input v-model"projectName" class"w-50 m-2" input"inputChange" focus"inputFocusFn" blur"inputBlurFn" placeholder"请输入项目名…