• Java网络编程


    一、网络编程概述

    定义:可以让设备中的程序(指的是安装在设备上的各种应用程序,例如手机上的App、电脑上的软件等。)与网络上其他设备中的程序进行数据交互(实现网络通信的)

    客户端(Client)是指发起网络请求的一方,通常是嵌入在用户设备中的应用程序或者浏览器。客户端负责向服务端发送请求,并接收来自服务端的响应。例如,我们使用的浏览器就是典型的客户端,用于向服务端请求网页并显示在用户界面上

    服务端(Server)是指接收客户端请求并提供服务的一方,通常是运行在服务器上的应用程序。服务端接收客户端的请求,进行相应的处理,并将结果返回给客户端。例如,在浏览器中请求网页时,浏览器会将请求发送到服务端,然后服务端响应并返回相应的网页内容。

    在这个角度上,我们的电脑既可以是客户端,也可以是服务端,具体取决于其在某个特定场景下的使用角色。例如,当我们使用浏览器访问网页时,电脑是客户端;而当我们在电脑上搭建一个网站并提供服务给其他用户时,电脑就扮演了服务端的角色。

    通信的基本架构主要有两种形式:一种是CS架构(Client 客户端/Server服务端)、一种是BS架构(Brower 浏览器/Server服务端)。

    • CS架构的特点:CS架构需要用户在自己的电脑或者手机上安装客户端软件,然后由客户端软件通过网络连接服务器程序,由服务器把数据发给客户端,客户端就可以在页面上看到各种数据了。

    • BS架构的特点:BS架构不需要开发客户端软件,用户只需要通过浏览器输入网址就可以直接从服务器获取数据,并由服务器将数据返回给浏览器,用户在页面上就可以看到各种数据了。

    对比:

    CS架构通常较为灵活,支持复杂的交互和处理能力。

    而BS架构则更加便捷,无需安装和更新,适用于跨平台的Web应用。 

    二、网络编程三要素

    分别是IP地址、端口号、通信协议

    当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。

    1. IP地址:表示设备在网络中的地址,是网络中设备的唯一标识

    2. 端口号:应用程序在设备中唯一的标识

    3. 协议:连接和数据在网络中传输的规则。

    如下图所示:假设现在要从一台电脑中的微信上,发一句“你瞅啥?”到其他电脑的微信上,流程如下

    1.先通过ip地址找到对方的电脑

    2.再通过端口号找到对方的电脑上的应用程序

    3.按照双方约定好的规则发送、接收数据

    2.1 IP地址

    接下来,我们详细介绍一下IP地址。IP(Ineternet Protocol)全称互联网协议地址,是分配给网络设备的唯一表示IP地址分为:IPV4地址、IPV6地址

    IPV4地址由32个比特位(4个字节)组成,如果下图所示,但是由于采用二进制太不容易阅读了,于是就将每8位看成一组,把每一组用十进制表示(叫做点分十进制表示法)。所以就有了我们经常看到的IP地址形式,如:192.168.1.66

    如果想查看本机的IP地址,可以在命令行窗口,输入ipconfig命令查看,如下图所示

    经过不断的发展,现在越来越多的设备需要联网,IPV4地址已经不够用了,所以扩展出来了IPV6地址。

    IPV6采用128位二进制数据来表示(16个字节),号称可以为地球上的每一粒沙子编一个IP地址,

    IPV6比较长,为了方便阅读,每16位编成一组,每组采用十六进制数据表示,然后用冒号隔开(称为冒分十六进制表示法),如下图所示

    我们在命令行窗口输入ipconfig命令,同样可以看到ipv6地址,如下图所示

    现在的网络设备,一般IPV4和IPV6地址都是支持的。

    公网IP地址和私网IP地址可以重复,因为它们是在不同的网络范围中使用的。

    公网IP地址是由互联网服务提供商(ISP)分配给你的网络设备,用于在全球范围内唯一标识你的设备或网络。公网IP地址是全球唯一的。

    私网IP地址是用于在家庭、企业或组织内部的局域网中使用的IP地址。私网IP地址范围是根据互联网工程任务组(IETF)定义的保留地址范围分配的,以确保在全球范围内的网络中不冲突。

    由于私网IP地址只在局域网内部使用,并不直接在Internet上访问,所以私网IP地址可以在不同的局域网中重复使用,而不会发生冲突。但是,如果一个局域网连接到Internet,并且使用了私网IP地址,需要通过网络地址转换(NAT)来让私网IP地址与公网IP地址进行映射,以便与公网通信。

    我们在浏览器上访问某一个网站时,就需要在浏览器的地址栏输入网址,这个网址的专业说法叫做域名

    域名和IP其实是一一对应的,由运营商来管理域名和IP的对应关系。我们在浏览器上敲一个域名时,首先由运营商的域名解析服务,把域名转换为ip地址,再通过IP地址去访问对应的服务器设备。

    关于IP地址,还有一个特殊的地址需要我们记住一下。就是我们在学习阶段进行测试时,经常会自己给自己消息,需要用到一个本地回送地址:127.0.0.1

    ipconfig: 查看本机的ip地址

    ping 域名/ip  检测当前电脑与指定的ip是否连通

    ping命令出现以下的提示,说明网络是通过的

    2.2 InetAddress类

    我们在开发网络通信程序的时候,可能有时候会获取本机的IP地址,以及测试与其他地址是否连通,这个时候就可以使用InetAddress类来完成。下面学习几个InetAddress的方法。

    InetAddress类是Java中的一个类,它用于表示Internet协议(IP)地址。它提供了一些方法来获取和操作IP地址,包括获取主机名、IP地址字符串表示形式的转换、解析域名等功能

  • 相关阅读:
    商汤发布象棋机器人『元萝卜』;『南瓜书』西瓜书公式推导&解析;代码自动美化插件;Tock建立对话机器人的AI平台;前沿论文 | ShowMeAI资讯日报
    Cloudsim入门
    kubelet 状态更新机制之参数配置解析
    Android 11添加所有特许权限白名单
    AI人工智能小程序系统开发
    Java之HashMap和TreeMap
    【微服务实战系列】 nacos作为注册中心使用
    详细图解 Netty Reactor 启动全流程 | 万字长文 | 多图预警
    C# SolidWorks二次开发---工程图简单版标注长宽
    new条件构造器的位置很重要
  • 原文地址:https://blog.csdn.net/weixin_50458070/article/details/133363563