欢迎光临散文网 会员登陆 & 注册

后端 | Java | 网络编程之网络通信

2023-06-22 15:07 作者:朵宝特工007  | 我要投稿

笔记来源:Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程

一、什么是网络编程

  • 可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信)。

  • java.net.*包下提供了网络编程的解决方案。


二、基本的通信架构

  • 基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务器)。


三、网络通信三要素

  • IP地址设备在网络中的地址,是唯一的标识

    • IP(Internal Protocol):全称“互联网协议地址”,是分配给上网设备的唯一标识。

    • IP地址有2种形式:IPv4、IPv6。

      • IPv4:32位(4字节),11000000 10101000 00000001 01000010,点分十进制表示法,192.168.1.66。

      • IPv6:共128位,分为8段,每段每四位编码成一个十六进制位表示,数之间用冒号(:)分开。

    • IP域名由DNS服务器(域名解析服务器)解析为IP地址。

    • 公网IP:是可以连接互联网的IP地址。

    • 内网IP:也叫局域网IP,只能组织机构内部使用。192.168.开头的就是常见的局域网地址,范围为192.168.0.0--192.168.255.255,专门为组织机构内部使用。

    • 特殊IP地址:127.0.0.1、localhost代表本机IP,只会寻找当前所在的主机。

    • IP常用命令:

      • ipconfig:查看本机IP地址。

      • ping IP地址:检查网络是否连通。

    • InetAddress类:代表IP地址

      • public static InetAddress getLocalHost():获取本机IP,会以一个InetAddress的对象返回。

      • public static InetAddress getByName(String host):根据IP地址或者域名,返回InetAddress对象。

      • public String getHostName():获取该ip地址对象对应的主机名。

      • public String getHostAddress():获取该ip地址对象种的ip地址信息。

      • public boolean isReachable(int timeout):在指定毫秒内,判断主机与该ip对应的主机是否能连通。

  • 端口号应用程序在设备中唯一的标识

    • 标记正在计算机设备上运行的应用程序的,被规定为一个16位的二进制,范围是0~65535。

    • 分类:

      • 周知端口:0-1023,被预先定义的知名应用占用(如HTTP占用80,FTP占用21)。

      • 注册端口:1024-49151,分配给用户进程或者某些应用程序。

      • 动态端口:49151-65535,一般不固定分配给某种进程,而是动态分配。

  • 协议连接和数据在网络中传输的规则

    • 网络上通信的设备,事先规定的连接规则,以及传输数据的规则被称为网络通信协议。

    • TCP/IP网路模型:物理层(比特流)、数据链路层、网络层(封装源IP和目的IP)、传输层(TCP、UDP)、应用层(HTTP、FTP、SMTP...)。

    • 传输层的2个通信协议:

      • UDP(User Datagram Protocol):用户数据报协议

        • 特点:无连接、不可靠通信、通信效率高(视频语音通话)。

        • 不事先建立连接,数据按照包发,一包数据包含:自己的IP、程序端口、目的IP、程序端口和数据(限制在64KB内)等。

        • 发送方不管对方是否在线,数据在中间丢失也不管,如果接收方收到数据也不返回确认,故是不可靠的。

      • TCP(Transmission Control Protocol):传输控制协议

        • 面向连接、可靠通信、通信效率相对不高。

        • TCP最终目的:要保证在不可靠的信道上实现可靠的传输。

        • 三个步骤实现可靠传输:三次握手建立连接(发出连接请求、返回一个响应、再次发出确认消息,连接建立)、传输数据进行确认、四次挥手断开连接(发出断开连接请求、返回一个响应,等待、返回一个响应,确认断开、发出正式确认断开连接)。

        • 可靠连接:确定通信双方,收发消息都是正常无问题的(全双工)。





后端 | Java | 网络编程之网络通信的评论 (共 条)

分享到微博请遵守国家法律