北宸~
热爱世间万物,无偏爱,无例外~~

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 2022-03-24 10:12  Agoni~~  阅读(52)  评论(0)    收藏  举报