第16天 - 网络编程

      最后更新:2021-12-01 07:54:53 手机定位技术交流文章

      一、网络编程

      1.1 网络方案拟订纲要[了解]

      • 计算机网络

        被描述为一个计算机系统,将不同地理位置、用途不同的若干计算机及其外部设备连接在一个通信线路上,以便在网络操作系统、网络管理软件和网络通信协议的监督和协调下进行资源共享和信息传输。

      • 网络编程

        网络通信协议允许使用不同机器运行的软件传输数据。

      1.2 网络方案拟订三部分[综合]

      • IP地址

        为了使网络中的计算机能够相互交流,必须发给每台计算机一个识别号码,使计算机能够接收数据,并使计算机能够识别发件人,即IP地址。

      • 端口

        网络通信只是两个应用程序之间的通信。 因为每台计算机都有各种各样的应用程序, 您在网上互动时如何区分它们? 如果一个 IP 地址可以识别一个网络中的单个设备, 那么一个端口号码可以识别该设备的唯一应用程序。 这是应用程序的 身份孤立 IP 地址可以识别一个网络中的单个设备, 那么一个端口号码可以识别该设备的唯一应用程序。 这是应用程序的标识 。

      • 协议

        计算机网络可以连接数台计算机,而同一网络中的计算机在连接和通信方面必须遵守某些规则,正如公路上行驶的汽车必须遵守交通条例一样,在计算机网络中,这些连接和通信规则被称为网络通信规程,对数据传输格式、传输速度和数据传输速度提出了一致的要求。联合民主党和TCP是共同的议定书。

      一.3 IP 地址 [全面]

      IP地址是识别网络中设备的唯一方法。

      • IP地址分为两大类

        • IPv4 : 为连接网络的每个主机提供32位位元地址。 根据 TCP/ IP, IP 地址以二进制格式表示, 每个IP 地址为32位元或4个字节。 例如, 二进制格式的 IP 值为“ 1100亿, 1010亿, 0010010010 ”, 这个大地址太难管理 。 因此, IP 地址可能以“ ” 表示 IP 地址的表达方式被称为点对点表达式, 这显然比一个或一个都容易记住 。

        • IPv6:随着互联网越来越受欢迎,对IP地址的需要也越来越普遍;然而,IP地址有限对IP的分布造成压力。 为了扩大地址空间,通过IPv6重新定义了地址空间,使用128位位地址长度,按每16字节八组十六进制数字排列,从而解决网络资源不足的问题。

      • DOS常用命令:

        • 用 ipconfig 查看您的 IP 地址 。
      • Ping IP 地址测试网络连通性。

        • Netstat-no indstr 端口号, 以确定哪个港口被一个过程占用, 这个过程是一个Pid, 过程。 我们可能会强迫它使用任务管理器 。
      • 特殊IP地址:

        • :可用于代表家居地点并通常用于测试的返回地址

      1 InnetAddress [应用]

      InnetAddress:这是互联网协议(IP)地址。

      • 相关方法

        方法名 说明
        static InetAddress getByName(String host) 主机名的 IP 地址已经确定。 主机名可以是机器名或 IP 地址 。
        String getHostName() 要获取此 IP 地址, 请输入您的主机名 。
        String getHostAddress() 返回文本格式的 IP 地址字符串。
      • 代码演示

      1.5 议定书和港口[理解]

      • 端口

        • 设备是应用程序的唯一身份
      • 端口号

        • 以两个字节表示的整数值范围为 :0~65535。其中,0~1023对于一些众所周知的在线服务和应用程序,使用了插口号,必须使用标准应用程序。1024<以上的端口号。如果端口号被另外一个服务或应用所占用,会导致当前程序启动失败
      • 协议

        • 计算机网络的连接和通信原则称为网络通信协议。
      • UDP协议

        • 用户数据协议(UDP)是用户数据协议的缩略语。
        • UDP是断开通信的规程,即在数据传输期间,数据发送和接收端没有建立逻辑连接。简言之,当计算机将数据传输到另一台计算机时,发送者不能确保接收端存在,它提供数据,而同一发送者在收到数据时不向发送者提供反馈。
        • 由于联合民主党协议消耗的系统资源很少,能够进行有效的通信,因此它通常用于音乐、视频和一般数据的传输。
        • 例如,电视会议通常利用联合民主党协议,因为损失一两个数据包对接收结果没有重大影响,然而,在使用联合民主党协议传输数据的同时,由于联合民主党的方向没有联系,数据的完整性得不到保证,因此在传输敏感数据时不告知联合民主党协议。
      • TCP协议

        • 传送控制议定书(TCP)是传送控制议定书的缩略语。

        • TCP 协议是一个面向连接的通信协议,在传输数据之前使发送者和接收端之间具有逻辑联系,然后传输数据,在两台计算机之间提供可靠和无缝的数据传输,在TCP 连接中确定客户与服务器的连接,向服务发送客户的连接请求,并通过“三手”程序将每个连接进行。

        • 三次握手:客户与服务器在TCP协议数据传输初步步骤期间进行三次交流,以确保稳定的通信。

          对于初始握手,客户端向服务器发送连接请求,服务器必须确认此请求。

          服务器响应客户的第二次握手,发送回复,并通知客户已收到连接请求。

          在第三次握手中,客户向服务器发送确认信息,以确认连接。

        • 三个握手已经完成,连接已经建立,使客户和服务器能够开始数据传输。 由于这种面向连接的特点,TCP协议可以为数据传输提供安全保障,其应用范围很广。 比如上传文件、下载文件、阅读网页等等。

      2.UDP通信程序

      2.1 UDP数据传输[适用]

      • Java Java UDP 通信

        • 联合民主党协议是一个不值得信赖的网络协议,在连接的两端都设置了一个索克特对象,但两个索克特人只是传输和接收数据,因此对以联合民主党为基础的通信伙伴都没有所谓的客户和服务器概念。
        • 根据联合民主党的协议,爪哇公司提供数据仪套件类作为套件。
      • 构造方法

        方法名 说明
        DatagramSocket() 创建数据包并将其连接到您主网络上的任何可访问端口。
        DatagramPacket(byte[] buf,int len,InetAddress add,int port) 创建数据包并将其传送到指定主机的指定端口,长长的 len 长度。
      • 相关方法

        方法名 说明
        void send(DatagramPacket p) 发送数据报包
        void close() 关闭数据报套接字
        void receive(DatagramPacket p) 从此将接受数据包 。
      • 发送数据的步骤

        • 为发件人创建套件对象(数据套件) 。
        • 生成和软件包数据
        • 使用 DatagramSocket 对象方法发送数据 。
        • 关闭发送端
      • 代码演示

      2,2UDP 数据接收[应用]

      • 接收数据的步骤

        • 创建接收套件(数据套件)对象。
        • 要接收数据,请创建数据包。
        • 要接收数据,请使用数据组套件对象。
        • 软件包正在解析,数据正在控制表格中显示。
        • 关闭接收端
      • 构造方法

        方法名 说明
        DatagramPacket(byte[] buf, int len) 制作数据组包,以便接收长长的Len。
      • 相关方法

        方法名 说明
        byte[] getData() 返回数据缓冲区
        int getLength() 发送数据的长度或收到数据的长度被退回。
      • 示例代码

      [外国链图象传送失败后,建议为直接上传而保存照片(img-kopCr3L-16382727921197)(C: UsersLSHAppDataRoaming Typoratopora-user-imageimage 2021131166564762][Png, png, png, png, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng.

      2.3.3UDP 交流方案实践[应用]

      • 案例需求

        UDP传输的数据:键盘数据输入到输入的数据达到886时,传送数据结束。

        在通过UDP接收数据时使用了死亡循环,因为接收者不知道发送者何时停止发送。

      • 代码实现

      [理解] 2.4UDP 三种联系方式

      • 单播

        两个东道方之间一对一的端对端通信

      • 组播

        广播用于与某一东道方进行通信。

      • 广播

        主机使用无线电将数据传送给局域网的所有主机。

      2.55UDP 广播

      • 实现步骤

        • 发送端
          1. 为发件人创建套件对象(数据套件) 。
          2. 生成和软件包数据(DatagramPacket)
          3. 使用 DatagramSocket 对象方法发送数据 。(在单播中,这里是发给指定IP的电脑但是在组播当中,这里是发给组播地址)
          4. 释放资源
        • 接收端
          1. 创建接收套接字对象( MulticastSocket) 。
          2. 制作数据接收框 。
          3. 将目前的机器连接到广播地址
          4. 将数据接收到箱子中
          5. 数据集解析和打印
          6. 释放资源
      • 代码实现

      [明白]完成了2.6 UDP广播

      • 实现步骤

        • 发送端
          1. 构造一个发件人套件( 数据套件) 对象 。
          2. 制作一个容器以保存数据并加密广播地址。
          3. 发送数据
          4. 释放资源
        • 接收端
          1. 创建接收套件(数据套件)对象。
          2. 要接收数据,请创建数据包。
          3. 要接收数据,请使用数据组套件对象。
          4. 软件包正在解析,数据正在控制表格中显示。
          5. 关闭接收端
      • 代码实现

      3.TCP通信程序

      三.1 TCP 发送数据[有用]

      • Java TCP 通信

        • Java为基于TCP的网络创建了一个体面的信封,利用Socket天体代表两端通信端口,并在Socket天体产生的IO流上进行在线通信。
        • Java 向客户提供Socket类服务,向服务器服务器提供ServerSocket类服务。
      • 构造方法

        方法名 说明
        Socket(InetAddress address,int port) 创建串行字符串并将其链接到给定的 IP 端口号 。
        Socket(String host, int port) 生成流并将它们链接到所提供的主机端口号 。
      • 相关方法

        方法名 说明
        InputStream getInputStream() 此软件包的输入流被返回 。
        OutputStream getOutputStream() 返回此软件包的输出流 。
      • 示例代码

      三.2TCP 数据接收[应用]

      • 构造方法

        方法名 说明
        ServletSocket(int port) 制作连接到特定端口的服务器集 。
      • 相关方法

        方法名 说明
        Socket accept() 接受您在监听后要连接到这里的软件包 。
      • 注意事项

        1. 接受的方法停滞不前,影响在于客户正在等待连接。
        2. 为确保与服务器的连接,客户端创建对象,并使用三种握手程序连接到服务器上。
        3. 这是为客户印刷的,所以是产出流。
          在服务器上读到的 所以有输入流
        4. 阅读方法同样无法使用。
        5. 随着客户端完成流程,将执行额外的动作,将终端标记发送到服务器。
        6. 最后阶段是切断连接,确保四波协议取消连接。
      • 三次握手和四次挥手

        • 三次握手

          [外国连锁照片传送失败,源站可能有一个偷链机制,建议保存图片并直接上传(img-svSw8pv-16382727921199) (..peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng)

        • 四次挥手

          [Foreign-rbG181863827921200] [Foreign-convention photograph 传送失败;来源站可能有一个海盗链系统;照片应保存下来,以便直接上传(img-rbG18186318827921200) (. at_pat_pat_ peng, png, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng)

      • 示例代码

      三.3TCP 方案应用

      • 案例需求

        客户端: 传输数据并从服务器获取反馈 。

        收到留言后,请提供反馈。

      • 案例分析

        • 客户使用输出流数据生成对象。
        • 服务end 创建对象并通过输入流接收数据。
        • 服务端使用输出流提供反馈。
        • 客户通过输入流获取反馈数据。
      • 代码实现

      三.4TCP 文件上传练习 [应用]

      • 案例需求

        客户端:服务器接收来自本地文件的信息 。

        服务器: 收到的数据已写入本地文件, 提供反馈 。

      • 案例分析

        • 构造客户端对象、 指向文件的输入流对象, 以及每次读取数据时向服务器输出数据, 在此之后, 使用关闭 输出 () 功能将传输终止通知服务 。
        • 创建服务器对象、指向文件的输出流对象,并且每次收到数据时,都使用输出流写入文件,并在传输后写入文件。
        • 客户向客户提供反馈。
      • 相关方法

        方法名 说明
        void shutdownInput() 将此软件包的输入流置于数据流的尽头 。
        void shutdownOutput() 禁用此软件包的输出流 。
      • 代码实现

      TCP 应用程序服务器优化[应用]3.5%

      • 优化方案一

        • 需求

          服务器只能一次处理一个客户端请求, 收到一个图像后, 服务将被关闭 。

        • 解决方案

          使用循环

        • 代码实现

      • 优化方案二

        • 需求

          当初始文档第二次上传时, 它将被覆盖 。

        • 解决方案

          UUID。 要创建随机文件名, 请使用随机UID () 函数 。

        • 代码实现

      • 优化方案三

        • 需求

          虽然循环允许服务器处理多个客户请求,但它不允许服务器同时与许多客户连接。

        • 解决方案

          开启多线程处理

        • 代码实现

      • 优化方案四

        • 需求

          许多线索的使用可能允许服务器同时执行多个客户端请求。 但是,太多的资源被浪费在很多线索中,可能让服务器同时执行多个客户端请求。 但是,太多的资源被浪费了。

        • 解决方案

          加入线程池

        • 代码实现

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/13940.html

          热门文章

          文章分类