Java-网络编程和反射

1.网络编程

1.1网络编程的基本概念

1)含义及场景

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

应用场景:即时通信、网络对战、金融证券、国际贸易、邮件......

Java中可以使用java.net包下的技术轻松开发出常见的网络应用程序

2)常见的软件架构

1>C/S:(Client/Server 客户端/服务器端)在用户本地需要下载并安装客户端的程序,在远处有一个服务器端程序

优缺点:1)画面精美,用户体验好 2)需要开发客户端和服务端 3)用户下载和更新麻烦

2>B/S:(Browser/Server 浏览器/服务器)只需要一个浏览器,用户通过不同的网址,访问到不同的服务器

优缺点:1)不需要开发客户端,只需要页面+服务器端 2)用户不需要下载,打开浏览器就能使用 3)如果引用过大,用户体验受到影响

1.2网络编程的三要素

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

全称:Internet Protocol,是互联网协议地址,也称IP地址,是分配给上网设备的数字标签

1>IPv4:互联网通信协议第四版,采用32位地址长度,分成4组,采用点分十进制表示法。

32bit(4个字节)->11000000 10101000 00000001 01000010 = 192.168.1.66

公网地址(万维网使用)和私有地址(局域网使用)。192.168开头的就是私有地址。

127.0.0.1,也可以是localhost: 是回送地址,也称本机IP,永远只会寻找当前所在本机。

常用CMD命令:ipconfig:查看本机IP地址,ping:检查网络是否连通

2>IPv6:采用128位地址长度,分成8组,采用冒分十六进制表示法。128bit(8个字节)

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

端口号是由两个字节表示的整数,取值范围0~65535.其中0-1023之间的端口用于一些知名的网络服务或应用。一个端口只能被一个应用程序使用。

3)协议:数据在网络中传输的规则,常见的协议有UDP、TCP、http、https、ftp

UDP协议(用户数据报协议):UDP是面向无连接,速度快,有大小限制,一次最多发送64K,数据不安全,易丢失数据。不管是否连接成功都进行发送。

TCP协议(传输控制协议TCP):TCP是面向连接的通信协议,速度慢,没有大小限制,数据安全。确保连接成功发送。

1.3UDP通信程序

发送数据:1>创建发送端DatagramSocket对象 2>数据打包(DatagramPacket)3>发送数据 4>释放资源

接收数据:1>创建接收端的DatagramSocket对象 2>接收打包好的数据 3>解析数据包 4>释放资源

UDP通信的三种方式:

1)单播:一对一,只对一台电脑发送数据。

2)组播:对一组电脑发送数据。

组播地址:224.0.0.0~239.255.255.255,其中224.0.0.0~224.0.0.255为预留的组播地址。

3)广播:可以给局域网中所有电脑发送数据。

广播地址:255.255.255.255

1.4TCP通信程序

TCP通信时一种可靠的网络协议,它在通信的两端各建立一个Soket对象。通信之前要保证连接已经建立,通过Socket产生IO流来进行通信。

1)TCP的三次握手:确保连接的建立

2)TCP的四次挥手:确保连接断开,且数据处理完毕

2.反射

反射允许对成员变量,成员方法和构造方法的信息进行编程访问。也就是说可以获取类里面的所有信息。

1)获取

1>获取class对象的三种方式

Class.forName("全类名")----源代码阶段:编写Java文件,将Java文件编译成class文件,本阶段未把代码加载进内存,只在硬盘中进行了操作。【全类名=包名+类名】【最常用】

类名.class---加载阶段:字节码文件加载到内存中。【一般作为参数进行传递】

对象.getClass();---运行阶段:将对象加载到内存中。【当已经有对象才能使用】

2>获取构造方法的对象--Constructor

3>获取字段(成员变量)的对象--Field

4>获取成员方法的对象--Method

2)作用

获取一个类里面的所有的信息,获取到了之后,再执行其他业务逻辑

结合配置文件,动态的创建对象并调用方法

3.动态代理

特点:无侵入式的给代码增加额外的功能

代理里面就是对象要被代理的方法。

Java通过接口保证,后面的对象和代理需要实现同一个接口。接口中就是被代理的所有方法。

怎么为Java对象创建一个代理对象?

相关推荐
Cry丶3 小时前
ubuntu安装vsftpd
服务器·网络·ubuntu
SHENGWEI胜为7 小时前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
IMPYLH8 小时前
Linux 系统备份与镜像
linux·服务器·网络
淘气包海鸟9 小时前
水声网络框架
网络·ns3·水
国科安芯10 小时前
星间激光通信终端CANFD控制网络的时延确定性与辐射可靠性
网络·嵌入式硬件·信息与通信·canfd·低轨卫星·商业航天·抗辐射
中屹指纹浏览器svip11 小时前
网络抖动会标记账号异常?分清两种波动
网络
承渊政道11 小时前
Linux网络学习【传输层协议UDP】
linux·网络·网络协议·学习·ubuntu·udp
小此方11 小时前
Linux网络(三十三):告别O(n)噩梦:从select/poll的挣扎到epoll红黑树+回调的降维打击,一文打通IO多路复用
linux·网络·驱动开发
2301_7779983411 小时前
Linux 网络:数据链路层
linux·服务器·网络
国科安芯12 小时前
空间锂离子电池组管理系统CANFD通信网络的辐射可靠性设计
网络·信息与通信·canfd·电池·低轨卫星·抗辐射