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地址字符串表示形式的转换、解析域名等功能

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值