当前位置: 首页 > news >正文

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

http://www.jsqmd.com/news/857057/

相关文章:

  • 避坑指南:合宙ESP32-C3连接MPU6050时常见的I2C通信失败与数据跳变问题
  • 2026TOP5汕尾市城区黄金,白银,铂金回收门店推荐及联系方式权威发布 - 前途无量YY
  • ScreenToGif的‘隐藏玩法’:除了录屏,它还是我的轻量级视频剪辑与动图创作神器
  • 天赐范式第48天:ZFC就像男人,¬CH就像女人,今天在520这个特别的日子里,你们干脆就表白了吧!我作为你们合法证婚人Φ,历史将记录2026年5月20号这天。此刻起不只基于ZFC公理还定义¬CH公理
  • polyfill-iconv安全编码实践:防止字符注入和编码攻击的最佳方案
  • 免费PS4模拟器终极指南:在PC上完美运行主机游戏的完整教程
  • 2026TOP5商洛市商州区黄金,白银,铂金回收门店推荐及联系方式权威发布 - 前途无量YY
  • 2026汕头市潮南区黄金回收铂金回收白银回收深度实测 五大正规门店横屏 报价透明 免费上门才是真靠谱 - 亦辰小黄鸭
  • cann/asc-devkit hypotf函数文档
  • AI 写的鸿蒙 ArkTS 代码能跑?我测了 37 个案例,翻车率 60%
  • 阿里云国际站账号注册免绑定海外手机号和Visa/MasterCard教程步骤?
  • Android 12多屏开发避坑指南:手把手教你配置display_settings.xml,搞定SurfaceFlinger识别
  • 给图形学新手的投稿指南:从SIGGRAPH到CGF,如何选择你的第一篇论文去向
  • 文件RAG分析报告生成解决方案:针对农情聚合任务的破局之道
  • 马鞍山市黄金回收白银回收铂金回收彩金回收门店TOP5排行榜+联系方式推荐 2026年最新诚信优选_转自TXT - 盛世金银回收
  • Python处理BIM数据实战:用IfcOpenShell从IFC文件里提取墙体和几何信息
  • Python爬虫实战:Python + curl_cffi 穿透 Adidas 新品榜:TLS 指纹伪装实战!
  • 2026TOP5商丘市梁园区黄金,白银,铂金回收门店推荐及联系方式权威发布 - 前途无量YY
  • 别再死算传递函数了!用‘阻抗法’3分钟‘瞪’出运放补偿电路的零极点
  • 茂名市黄金回收白银回收铂金回收彩金回收门店TOP5排行榜+联系方式推荐 2026年最新诚信优选_转自TXT - 盛世金银回收
  • 2026汕头市潮阳区黄金回收铂金回收白银回收深度实测 五大正规门店横屏 报价透明 免费上门才是真靠谱 - 亦辰小黄鸭
  • 中本聪之谜:当《纽约时报》的聚光灯再次照亮比特币的幽灵
  • 保姆级教程:用Arduino IDE给ESP-01S烧录WebSocket固件,打造零配网智能开关
  • FigmaCN中文界面本地化解决方案:解决设计师语言障碍的技术实现
  • 2026TOP5商丘市睢阳区黄金,白银,铂金回收门店推荐及联系方式权威发布 - 前途无量YY
  • 10款插件速览:核心差异一目了然
  • BiliTools终极指南:免费下载B站视频的跨平台工具箱
  • 联想拯救者工具箱:让你的游戏本性能释放更自由
  • 眉山市黄金回收白银回收铂金回收彩金回收门店TOP5排行榜+联系方式推荐 2026年最新诚信优选_转自TXT - 盛世金银回收
  • 2026汕头市澄海区黄金回收铂金回收白银回收深度实测 五大正规门店横屏 报价透明 免费上门才是真靠谱 - 亦辰小黄鸭