zoukankan      html  css  js  c++  java
  • java 25

    网络通信三要素

    IP地址:

      InetAddress 网络中设备的标识,不易记忆,可用主机名(计算机的标识号)

    端口号:

      用于标识进程的逻辑地址,不同进程的标识(正在运行的软件的标识号)

    传输协议:

      通讯的规则 常见协议:TCP,UDP

    例子:  

    平时我们要进行通讯,需要哪些要素呢?

    比如说:我要跟你说话.

      第一个条件:

        我要先找到你 (IP)

      第二个条件:

        你得有接收数据的地方 耳朵 (端口)

      第三个条件:

        我跟你说话,你能接收到,咱按什么方式接收啊,我说英文你懂吗,说韩文你懂吗,不懂是吧,所以我还是说中文把.(协议)

    IP地址

      要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机。在TCP/IP协议中,这个标识号就是IP地址。

      那么,我们如果获取和操作IP地址呢? 为了方便我们对IP地址的获取和操作,java提供了一个类InetAddress 供我们使用。

    A:所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。

      按照TCP/IP规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP地址

    是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。

    为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。

    于是,上面的IP地址可以表示为“10.0.0.1”。IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多。

    B:IP地址的组成

    IP地址 = 网络号码+主机地址

      A类IP地址:

        第一段号码为网络号码,剩下的三段号码为本地计算机的号码

      B类IP地址:

        前二段号码为网络号码,剩下的二段号码为本地计算机的号码

      C类IP地址:

        前三段号码为网络号码,剩下的一段号码为本地计算机的号码

      特殊地址:

        127.0.0.1 回环地址,可用于测试本机的网络是否有问题. ping 127.0.0.1

      DOS命令 ipconfig:查看本机IP地址

        xxx.xxx.xxx.0 网络地址
        xxx.xxx.xxx.255 广播地址

      A类 1.0.0.1---127.255.255.254 (1)10.X.X.X是私有地址(私有地址就是在互联网上不使用,而被用在局域网络中的地址) (2)127.X.X.X是保留地址,用做循环测试用的。

      B类 128.0.0.1---191.255.255.254 172.16.0.0---172.31.255.255是私有地址。169.254.X.X是保留地址。

      C类 192.0.0.1---223.255.255.254 192.168.X.X是私有地址

      D类 224.0.0.1---239.255.255.254

      E类 240.0.0.1---247.255.255.254

    类InetAddress:

      这个类没有构造方法,那么如何使类提供的功能呢?

      如果一个类没有构造方法:
        A:成员全部是静态的(Math,Arrays,Collections)
        B:单例设计模式(Runtime)
        C:类中有静态方法返回该类的对象(InetAddress)
        

    1   class Demo {
    2   private Demo(){}
    3 
    4     public static Demo getXxx() {
    5     return new Demo();
    6     }
    7 }    

    要掌握的功能

      获取任意主机的IP(得知道那台主机的名字):getByName

      主机名:getHostName

      主机Ip地址:getHostAddress

    代码:

     1     public static void main(String[] args) throws UnknownHostException {
     2         //InetAddress类
     3         
     4         //获取任意主机的IP(得知道那台主机的名字):getByName
     5         InetAddress id = InetAddress.getByName("DESKTOP-9HCB2BG");
     6         System.out.println(id);
     7         
     8         //主机名:getHostName
     9         String name = id.getHostName();
    10         System.out.println(name);
    11         
    12         //主机Ip地址:getHostAddress
    13         String myid = id.getHostAddress();
    14         System.out.println(myid);
    15     }

    端口号

      物理端口:网卡口

      逻辑端口:我们指的就是逻辑端口

        A:每个网络程序都会至少有一个逻辑端口

        B:用于标识进程的逻辑地址,不同进程的标识

        C:有效端口:0~65535,其中0~1024系统使用或保留端口。

    PS:通过任务管理器的详细信息可以查看端口号

    协议UDP和TCP

      UDP (俗称:不可靠协议)

        将数据源和目的封装成数据报包中,不需要建立连接;每个数据报包的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快
      TCP (俗称:三次握手协议)

        建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低

    总结:
      UDP的特点:

        面向无连接。

        不可靠。

        速度快。

        将数据封包传输,数据包最大64k。

      举例:

        聊天留言,在线视频,视频会议,发短信,邮局包裹。

      TCP的特点:

        面向连接。

        安全可靠

        效率稍低。

        通过三次握手确保连接的建立。

      举例:

        下载,打电话,QQ聊天(你在线吗,在线,就回应下,就开始聊天了)

    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    关于 广义相对论 引力红移 的 一个 疑问
    随便 说说 非欧几何
    收录 几篇 关于 电磁波 麦克斯韦方程 的 文章
    从 广义相对论 看到 “数学陷阱”
    对 广义相对论 的 评价
    收录 几篇 关于 广义相对论 水星进动 的 文章
    关于 1 和 0.999999……
    我对 量子力学 提出了一个 修正,名为 “K氏修正”
    随便记录点 在 贴吧 里 讨论 广义相对论 的 想法
    C#程序员初学Python
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5961447.html
Copyright © 2011-2022 走看看