北宸~
热爱世间万物,无偏爱,无例外~~
posts - 31,comments - 0,views - 5742

01.网络编程

#网络编程简介:
专业版话述(网络通信的原理):网络编程也叫Socket编程, 也叫套接字编程, 通信两端都独有自己的Socket对象, 数据在两个Socket之间通过 数据报包(DatagramPacket) 或者 IO流的方式进行传输.
大白话版:网络编程就是用来实现 网络互联的 不同计算机上 运行的程序间 可以进行数据交互, 传输等.
软件结构:
C/S结构: Client(客户端)/Server(服务器端)
好处:
1. 界面相对比较美观.
2. 降低服务器压力, 所需的非核心数据可以提前安装到客户端.
弊端:
当服务器端升级的时候, 客户端也要同步更新.
B/S结构: Browser(浏览器端)/Server(服务器端)
好处:
1. 操作简单, 方便, 只需一个浏览器即可, 从而提高用户体验.
2. 服务器端更新的时候, 浏览器端不需要同步更新.
弊端:
1. 服务器端压力较大.
2. 需要用户记忆各种网址, 相对不太友好.
三大要素:
IP地址: 此处以IPv4举例.
概述:
指的是设备(电脑, 手机, Ipad)在网络中的 唯一标识.
组成:
网络(网关)号码 + 主机地址.
例如:
192.168.33.77
分类:
城域网: 1 + 3, 第一段是网络号码, 剩下3段是主机地址, 假设: 1.0.0.1, 1.0.0.2
广域网: 2 + 2
局域网: 3 + 1
两个特殊的IP:
127.0.0.1 本地回环(回路)地址.
255.255.255.255 广播地址.
两个常用的DOS命令:
ipconfig /all 查看IP信息详情,可查看本机的Mac地址.
ping ip地址 -t 测试网络连接,直到主机停止.
端口号:
概述:
程序在设备上的唯一标识.
范围:
0 ~ 65535
细节:
其中0~1023已经被系统占用或者用作保留端口, 我们在自定义端口号的时候尽量规避这个范围.
涉及到的DOS命令:
netstat -ano //查看本机所有的端口号
netstat -ano | findstr 端口号 //查看本机指定的端口号, 主要是看其对应的pid值的.
tasklist | findstr pid值 //根据pid值获取其对应的程序.
taskkill /pid pid值 /F //根据pid值杀死其对应的程序.
协议:
概述:
指的是设备间进行通信时所要遵循的规则, 规范.
分类:
UDP协议: //类似于 群发.
1. 面向无连接.
2. 采用数据报包的方式发送数据, 每个包的大小不超过64KB.
3. 不安全(不可靠)协议.
4. 效率相对较高.
5. 不区分客户端和服务器端, 叫: 发送端和接收端.
TCP协议: //类似于 打电话.
1. 面向有连接(三次握手).
2. 采用IO流的方式发送数据, 理论上来讲数据无大小限制.
3. 安全(可靠)协议.
4. 效率相对较低.
5. 区分客户端和服务器端.
InetAddress(IP地址包装类):
概述:
它是IP地址的包装类, 即: 标示的是IP地址对象, 里边提供的功能主要用户在 字符串形式的IP和 IP地址对象之间做转换.
成员方法:
String形式的IP -> Ip对象
public static InetAddress getByName(String 主机名/ip地址); 根据主机名或者ip地址, 获取其对应的IP地址对象.
IP对象 -> String形式的IP
public String getHostAddress(); 根据IP地址对象, 获取其对应的 字符串形式的IP.
public String getHostName(); 根据IP地址对象, 获取其对应的 字符串形式的主机名.

02.包装类

# 案例: 包装类详解.
* 包装类简介:
* 概述: 在Java中, 为了更方便的管理基本类型, 设计者就针对于 8种基本类型, 分别提供了对应的 引用类型, 用来管理它们.帮助我们实现更灵活, 更丰富多彩的代码运用, 这些 与基本类型对应的引用类型, 统称为: 包装类.
* 大白话翻译: 包装类就是基本类型对应的 引用类型的统称.
* 基本类型与其对应的包装类之间的对应关系:
* 基本类型 与其对应的引用类型(包装类)
* byte Byte
* short Short
* char Character
* int Integer
* long Long
* float Float
* double Double
* boolean Boolean
* 包装类的应用场景:主要用于该包装类对应的基本类型 与 字符串之间的相互转换.
*例如:
* Integer就是用来在 int 和 String之间做相互转换的.
* Double就是用来在 double 和 String之间做相互转换的.
* 举例:
* String s = "123";
* int a = Integer.parseInt(s); //123, 这个就是包装类的应用场景.
* <p>
* double d = Double.parseDouble("10.3");
* boolean flag = Boolean.parseBoolean("false");
* 结论:
* 1. 我们学习包装类, 学习的就是包装类中的 parseXxx()方法.
* 2. parseXxx()方法可以用于将 字符串类型的该数据, 转成其对应的基本类型. 例如:
* int num = Integer.parseInt("123");
* double d = Double.parseDouble("10.3");
* boolean flag = Boolean.parseBoolean("true");
* 3. 8种包装类除了Character类之外, 其它7种包装类都有 parseXxx()方法.
*
* 扩展知识: String 和 char类型之间如何相互转换.
*
* 情况1: String -> char String s1 = "abc"; char ch1 = s1.charAt(1);
* 情况2: char -> String char ch2 = 'a' ; String s2 = ch2+""; 或者 String s3 = String.valueof(ch2)
* 情况3: String -> char[] String s1 = "abc"; char[] ch3 = s1.toCharArray();
* 情况4: char[] -> String char[] chs = {'a','b','c','d'}; String s = new String(chs) 或者 String s = String.valueOf(chs)
* * * * * * * * * * * * * * * * * * * * * * * * *
### 案例: 演示 int类型 和 String类型之间如何相互转换.
int -> String:
方式1: 直接和""拼接
方式2: 通过String#valueOf()方法实现.
public static String valueOf(任意类型); 把任意类型的值转成其对应的 字符串形式.
String -> int:
方式1: String -> Integer -> int.
方式2: Integer#parseInt()
* * * * * * * * * * * * * * * * * * * * * * * * *
posted on   Agoni~~  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示