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对象创建一个代理对象?

相关推荐
Oll Correct9 小时前
实验二十五:从IPv4向IPv6过渡所使用的隧道技术
网络·笔记
c++逐梦人9 小时前
五种IO模型与⾮阻塞IO
开发语言·网络
冰冰的米咖9 小时前
交换与路由技术整理与总结(持续更新版)
网络·网络协议·智能路由器
Sagittarius_A*9 小时前
H3CSE 高性能园区网:Smart Link 与 Monitor Link 技术详解
网络·计算机网络·h3cse
Ether IC Verifier9 小时前
TCP/IP协议握手原理详解——结合以太网连接过程
服务器·网络·数据库·网络协议·tcp/ip
宋浮檀s9 小时前
DVWA通关教程1
网络·安全·web安全
行走的陀螺仪9 小时前
Stripe 支付接入完整指南:从零到一,通俗易懂(2025最新版·含 Checkout Sessions + Payment Element 双方案)
网络·stripe
隔窗听雨眠10 小时前
AI开发者的网络卡点:Anthropic连接超时实战避坑
网络·人工智能
星恒讯工业路由器10 小时前
6G FR3深度解析
网络·无线通信·6g·通感一体化·fr3频谱