2021-08-11笔记

3. 网络编程

3.1计算机之间通信需要的条件

3.1.1 IP地址

IP地址指的是互联⽹地址(Internet Protocol Address ) ,是联⽹设备与互联⽹之间的 唯⼀标识,在同⼀个⽹段中,IP地址是唯⼀的

IP地址是数字型的,是⼀个32位的整数,通常将其分成4个8位的⼆进制数,每8位之 间⽤圆点隔开, 每个8位整数可以转换为⼀个0~255的⼗进制整数,例 如:202.9.128.88

标准分类:分为IPV4和IPV6

IP地址使⽤范围分类

A类:保留给政府结构,1.0.0.1 ~ 126.255.255.254

B类:分配给中型企业,128.0.0.1 ~ 191.255.255.254

C类:分配给任何需要的个⼈,192.0.0.1 ~ 223.255.255.254

D类:⽤于组播,224.0.0.1 ~ 239.255.255.254

E类:⽤于实验,240.0.0.1 ~ 255.255.255.254

回收地址:127.0.0.1,指本地机,⼀般⽤于测试使⽤

IP地址可以唯⼀的确定⽹络上的⼀个通信实体,但⼀个通信实体可以有多个通信程序 同时提供⽹络服务,此时还需要使⽤端⼝

3.1.2 端口

数据的发送和接收都需要通过端⼝出⼊计算机,端⼝号⽤于唯⼀标识通信实体上进⾏ ⽹络通讯的程序,同⼀台机器上不能两个程序占⽤同⼀个端⼝

端口号的取值范围:0~65535

端口分类:

公认端口:0~1023

注册端口:1025~49151

动态或私有端口:1024~65535

常用端口:

mysql:3306

oracle:1521

tomcat:8080

3.1.3 通信协议*

需要通信的设备之间需要实现相同的通信协议

⽹络分层(七层协议):物理层,数据链路层,⽹络层,传输层,会话层,表示层,应⽤层

通信协议分类:

传输层协议:TCP和UDP

网络层IP协议:IPV4和IPV6,互联⽹协议

应用层协议:HTTP

  • 七层协议:

应用层

与其它计算机进⾏通讯的⼀个应⽤,它是对应应⽤程序的通信服务的。 例如,⼀个 没有通信功能的字处理程序就不能执⾏通信的代码, 从事字处理⼯作的程序员也不 关⼼OSI的第7层。但是,如果添加了⼀个 传输⽂件的选项,那么字处理器的程序员 就需要实现OSI的第7层。 示例:TELNET,HTTP,FTP,NFS,SMTP等。

表示层

这⼀层的主要功能是定义数据格式及加密。例如,FTP允许你选择以⼆进制 或ASCII 格式传输。如果选择⼆进制,那么发送⽅和接收⽅不改变⽂件的内容。 如果选择 ASCII格式,发送⽅将把⽂本从发送⽅的字符集转换成标准的ASCII后 发送数据。在接 收⽅将标准的ASCII转换成接收⽅计算机的字符集。示例:加密,ASCII等。

会话层

它定义了如何开始、控制和结束⼀个会话,包括对多个双向消息的控制和管理, 以 便在只完成连续消息的⼀部分时可以通知应⽤,从⽽使表示层看到的数据是连续的, 在某些情况下,如果表示层收到了所有的数据,则⽤数据代表表示层。示例:RPC, SQL等。

传输层

这层的功能包括是否选择差错恢复协议还是⽆差错恢复协议,及在同⼀主机上对不同 应⽤的数据流的输⼊进⾏复⽤,还包括对收到的顺序不对的数据包的重新排序功能。 示例:TCP,UDP,SPX。

网络层

这层对端到端的包传输进⾏定义,它定义了能够标识所有结点的逻辑地址,还定义了 路由实现的⽅式和学习的⽅式。为了适应最⼤传输单元⻓度⼩于包⻓度的传输介质, ⽹络层还定义了如何将⼀个包分解成更⼩的包的分段⽅法。示例:IP,IPX等。

数据链路层

它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例: ATM,FDDI等。

物理层

OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定 的标准。 连接头、帧、帧的使⽤、电流、编码及光调制等都属于各种物理层规范中 的内容。 物理层常⽤多个规范完成对所有细节的定义。示例:Rj45,802.3等。

3.1.4 客户端和服务器

客户端:可以让⽤户直接交互,⽤来访问服务器端

服务器端:给⽤户提供数据的存储,数据的中转,数据的运算

注意:

1.客户端服务器端都是指的是应⽤(app),⽽⾮主机,即 客户端!=主机 服务器端!=主机

2.⼀台主机上可以同时运⾏多个应⽤

3.⼀台主机上可以同时存储客户端和服务器端,也可以分属于不同的主机

4.应⽤就是⼀个进程,所以客户端和服务器端都是独⽴的进程

3.1.5 网址理解

⽹址案例: "https://www.baidu.com:80/ewf/sdf?name=bingbing&age=20"

⽹址的功能:实现客户端与服务器端的通信

协议:是制定⼀个统⼀的规范 http协议:超⽂本传输协议,实现的是⽹络间的通信的⼀个通信规则

https协议:安全的http协议---可以省略,默认是http协议

域名/IP:标记⽹络上的唯⼀⼀台主机 可以简化写:baidu

端⼝号:标记同⼀台主机上的某⼀个服务器 [0,65536]---可以省,默认80

资源路径: 可以省

查询条件: 可以省

3.1.6网络相关概念

1.外⽹:IP是唯⼀性,不能重复。范围:0.0.0.0~255.255.255.255

2.内⽹:通过路由器或者交换器设备,来重新设置IP地址。

不同的内⽹的ip可以相同。内⽹A的某⼀台主机通过⾃⼰的⽹卡与⾃⼰的路由器A通 信,然后路由器A通过⽹络中⼼与路由器B通信,路由器B再与内⽹中的某⼀台机器的⽹卡通信。

3.IP: ip地址是确定⼀台机器的唯⼀标识符

4.NETMASK(⼦⽹掩码):与ip连⽤,⽤于确定⽹络段位 192.168.1.x 范围:1-254 255.255.255.0

⼦⽹掩码有1的位置对应ip的部分就是⽹络段位。0对应的位置就是内⽹中主机的位 置。

⼦⽹掩码作⽤:⽤来指定当前机器属于哪个ip号段的

判断⽅式:将当前的ip的⼆进制按位与⼦⽹掩码的⼆进制等于⽹段地址

如: 192.168.1.2 & 255.255.255.0 = 192.168.1.0

5.GATEWAY:⽹关,⽤于与连接外⽹的机器设备通信(路由器)换句话说,⽹关就是 路由器的IP

6.DNS:域名解析服务器 119.75.217.109 www.baidu.com

3.1.7设备介绍

1.路由器 路由器是连接两个或多个⽹络的硬件设备,在⽹络间起⽹关的作⽤,是读取每⼀个数 据包中的地址然后决定如何传送的专⽤智能性的⽹络设备。它能够理解不同的协议, 例如某个局域⽹使⽤的以太⽹协议,因特⽹使⽤的TCP/IP协议。这样,路由器可以分 析各种不同类型⽹络传来的数据包的⽬的地址,把⾮TCP/IP⽹络的地址转换成TCP/IP 地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。所 以路由器可以把⾮TCP/ IP⽹络连接到因特⽹上。

2.交换机 交换机(Switch)意为“开关”是⼀种⽤于电(光)信号转发的⽹络设备。它可以为接 ⼊交换机的任意两个⽹络节点提供独享的电信号通路。最常⻅的交换机是以太⽹交换 机。其他常⻅的还有电话语⾳交换机、光纤交换机等。

3.Modem 调制解调器(英⽂名Modem),俗称“猫”,是⼀种计算机硬件.它能把计算机的数字 信号翻译成可沿普通电话线传送的脉冲信号,⽽这些脉冲信号⼜可被线路另⼀端的另 ⼀个调制解调器接收,并译成计算机可懂的语⾔。 计算机内的信息是由“0”和“1”组成数字信号,⽽在电话线上传递的却只能是模拟电信 号。于是,当两台计算机要通过电话线进⾏数据传输时,就需要⼀个设备负责数模的 转换。

4.虚拟机 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运⾏在⼀ 个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的⼯作在虚拟机中都 能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟 机的硬盘和内存容量。每个虚拟机都有独⽴的CMOS、硬盘和操作系统,可以像使⽤ 实体机⼀样对虚拟机进⾏操作。

4.反射

实现原理分析 实现过程:

1.获取字节码⽂件对象

2.通过字节码⽂件对象获取对应的实例对象

3.给属性赋值(通过从属性中提取出来的类--Field)

4.调⽤⽅法(通过从⽅法中提取出来的类-- Method)

返回参数方法名描述
static Class<?>forName(String className)回与带有给定字符串名的类或接口相关联的 Class 对象。
Constructor<T>getConstructor(Class<?>... parameterTypes)返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。
FieldgetField(String name)返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段。
FieldgetDeclaredField(String name)返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段。(含有Declared无视权限)
MethodgetMethod(String name, Class<?>... parameterTypes)返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。
MethodgetDeclaredMethod(String name, Class<?>... parameterTypes)返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法。(含有Declared无视权限)
StringgetName()String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
PackagegetPackage()获取此类的包。
TnewInstance()创建此 Class 对象所表示的类的一个新实例。
invoke

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值