Java程序基础——网络编程

      最后更新:2022-05-10 02:01:10 手机定位技术交流文章

      目录

      一、网络通信协议

      一.1. 港口号码和IPIP地址

      1.2、 InetAddress

      二. 《关于联合民主党-贸易协定的协定》

      2.1、UDP协议

      2.2 TCP协议

      三、 UDP通信

      3.1 DatagramPacket

      3.2 DatagramSocket

      3.03 UDP 网络应用程序

      四、TCP通信

      4.1 ServerSocket

      4.2 Socket ServerSocket

      四.3. 简单的TCP网络应用程序

      文件上传案例

      4. 5 多线版本的文件上传状态

      一、网络通信协议

      • 计算机网络使数台计算机能够连接在一起。若干规则规范了同一网络上的计算机之间的连接和通信。类似公路上的汽车必须遵守交通法在计 算机网络中,这些连接和通信标准被称为网络通信协议。它具体规定了标准数据传输格式、传输率、传输阶段等等。只有通信双方同时遵守规则,数据交换才能实现。
      • 基于网络的通信协议有多种口味。政府目前正在使用最常用的TCP/IP议定书(转让控制议定书/互联网转让控制议定书/互联网连接议定书)。这是TCP/IP协议。关于UDP(用户数据表议定书)和其他一组协定的协定
      • 随着数据传输,所提供的数据必须与收到的数据完全相同,必须在当前数据中增加大量信息,以保证数据在传输过程中采用完全一致的格式,TCP/IP协议结构非常简单,分为四个层次,如图所示。

      上文将TCP/IP协议的四个层次描述为应用、传输、网络和链接层,每个层次负责各种通信职能。

      • 链层界定了实际传输渠道,通常是各种网络连接装置的驱动程序,例如光纤、网格线等等。
      • 网络层是TCP/IP协议的核心,用于汇总传输的数据,并将集群数据传送到目的地计算机或网络。
      • 就网络通信而言,转让层通常用于与TCP议定书或UDP议定书的通信。
      • 应用级协议,如HTTP和FTP协议,主要负责应用。

      一.1. 港口号码和IPIP地址

      • 为了使网络中的计算机能够互动,必须发给每台计算机一个识别号码,用以识别接收数据的机器或提供数据的计算机。
      • 根据TCP/IP议定书协议,这是互联网协议的地址。它只能识别电脑目前,IPv4 是最常用的 IP 地址形式 。它由一个四字节二进制的号码表示。例如,001。无法使用 IP 地址, 因为它极难以二进制形式记住和处理 。因此,IP地址通常采用小数位数的形式。每个字节代表小数点数(0-255)。"典型的跨系统" 由他们自己比如说,"。"随着计算机网络规模的扩大对IP地址的需求正在增加。IPV4已经用完四字节IP地址了这就是为什么 IPv6 创建的原因 。IPv6 中的 IP 地址是 16 字节长 。其地址能力大约是IPv4的8 x 1028倍。总人数为2 128人(零)。这就解决了因特网地址来源数量不足的问题。
      • IP 地址允许您连接到特定的机器 。但是,如果你需要访问 目标计算机的应用程序之一,还需要指定端口号。在计算机中,港口号对各种应用作了区分。端口号由两个字节( 16 位二进制) 表示。它的字符范围为 065535。其中,一些众所周知的在线服务和应用程序利用01023之间的港口号码进行通信。用户的典型程序需要超过 1024 的端口 。因此,避免了另一项申请或服务占用港口号。
      • IP 地址和端口号的函数然后用一个示例显示,如下图所示。

      上图显示,网络上的计算机可以通过IP地址进入另一台计算机,目标计算机上也可以通过港口号码进入应用程序。

      1.2、 InetAddress

      static InetAddress getByName ( String host)
      如果提供了主机名, 此函数返回主机的 IP 地址 。
      String getHostAddress()
      返回 IP 地址字符串( 文本形式) 。
      String getHostName()
      获取与此 IP 地址相关的主机名 。
      static InetAddress getLocalHost()
      返回本地主机。

      上图中,INETAddress经常使用四种方法。其中,前两种方法用于收集这一类目标群体的样本。第一种方法返回 InetAddress 对象,该对象代表所提供的主机。第二种方法用于获取代表所在地的 InetAddress 对象。InternetAddress 对象提供对所提供主机名的访问权限。IP地址等。

      二. 《关于联合民主党-贸易协定的协定》

      在TCP/IP结构中,在传输层方面,有两项重要的高级别协议。TCP和UDP是两项议定书。用户数据表协议作为UDP缩写。用户数据报告协议就是它所谓的。TCP代表《传输控制议定书》。称为传输控制协议。

      2.1、UDP协议

      • UDP代表断断续续的通信协议。即在数据传输时,数据传输机与数据接收机之间没有逻辑关系。简单来说,当一台计算机将数据传送给另一台计算机时,发件人不证明接收端的存在。就会发出数据,同样,当数据交付给收件人时,发送者将不接收数据。
      • 虽然联合发展方案协议在通信方面耗费大量资源,效率很高,但通常用于传输音频、视频和一般数据,例如视频会议,因为丢失一两个数据包对接收结果的影响并不大。
      • 不幸的是,在使用联合民主党协议时不能保证数据的完整性,因为联合民主党的取向是非连接性的,因此不建议联合民主党协议传送敏感数据。
      • 下图说明了民主联盟的交流机制。

      2.2 TCP协议

      • TCP议定书是一份以联系为导向的通信议定书。目的是在发送者与提供数据前接收端之间建立逻辑联系 然后再传输数据,它确保两个计算机之间可靠地发送数据。您必须在 TCP 连接中指定服务器的客户端 。客户向服务发送连接请求 。使用“三握手”来确定每个连接。第一次握手,客户启动与服务器的连接请求 。等待服务器确认,第二次握手,服务器响应客户的要求这是第一次与客户建立连接。第三次握手,无法关闭临时文件夹:%s。确认连接。下面的图示描述了整个互动程序。

      由于TCP协议以连接为导向,它确保了数据传输的安全并被广泛使用,例如,在下载文件时,如果数据接收是部分的,它将导致无法获得的文件数据丢失,因此必须使用TCP协议。

      三、 UDP通信

      3.1 DatagramPacket

      联合民主党是一个单独的安排。因此,在沟通时,没有要求在发送者和接收端之间建立联系。联合民主党通讯议定书类似于航运公司在两个码头之间运输货物。货物在港口交付和收到后,必须装上集装箱。民主联盟的通信也是如此。传输和接收的数据也必须捆绑在“容器”中。因此,JDK包括一个数据法包类。等同的容器就是这种类型的一个例子。加密通过UDP对话提供或收到的数据。

      要生成数据表包对象,请先构建数据表包对象。首先,我们必须了解它是如何建立的。在发送和接收端, 在建造数据组包装物体时,采用的建筑方法各有不同。接收端的建设方法只要求一个字节阵列来保存收到的数据。发送方的解决方案不仅仅是接收包含给定数据的字节阵列。您还必须包含发件人的 IP 地址和端口号 。

      • 数据图包方法
      DatagramPacket(byte[] buf, int length)
      构造DatagramPacket,用来接收长度为length的数据包。

      要构建数据仪包件天体, 请使用此构造技术 。指定了字节数组的大小和附加数据的数据。没有提供 IP 地址或端口号 。很明显,这些物品只能在接收端使用。不能用于发送端。由于发送者必须指明数据目的地(ip地址和港号),必须确定数据目的地。此外,并不要求接受者知道数据的实际来源。只应发送数据。

      DatagramPacket (byte[] buf, int length, InetAddress address, int port)
      创建用于长度的数据包 。length。该物品已交付给给定的东道方和港口号。

      要构建数据仪包件天体, 请使用此构造技术 。它不仅指定字节阵列和要封装的数据数量,而且还指定了还具体说明了数据集的目标IP地址(addr)和端口号(port)。此项通常适用于发件人。既然您在传输数据时必须提及收件人的 IP 地址和端口号,好像运送物品的集装箱 一定有收货人的地址

      • 标准数据表包装技术
      InetAddress getAddress()
      计算机的IP地址将被传送或从机器接收,该地址将被退回。
      byte[] getData()
      返回数据缓冲区。
      int getLength()
      将要交付或收到的数据的长度被退回。
      int getOffset()
      要交付或收到的数据的偏差被退回。
      int getPort()
      返回将发送到主机或从主机接收到的远程主机的端口号。

      3.2 DatagramSocket

      Datagram Packet 的功能是充当“ 容器 ” 。数据信封可以装入发件人或接收端。然而,仅仅在“集装箱”内运输产品是不够的。还需要有码头。数据表包数据包是程序期间所需的唯一通信。为此,JDK包括一个数据组套件类。DatagramSocket 类功能与对接功能相似。您可以使用这类示例对象传输和接收数据组包数据包包。下图说明数据传输过程。

      • 数据套往往采用建设性办法。
      DatagramSocket()
      数据包是在当地主机的任何无障碍港口建造和装订的。

      当系统分配一个未被其他网络应用程序使用的端口号码时,将使用建筑技术在发件人端上建造一个数据表套件,在数据表套件天体建造时没有提供端口号码。

      DatagramSocket(int port)
      创建数据套件并将其连接到本地主机的端口 。

      此方法可用于在接收端也构建数据组套件对象。为发件人建造数据组套件也是可行的。在为接收器建造数据组套件天体时,必须指定一个端口号 。因此,你可以倾听所选港口的声音。

      • 标准数据表软件技术
      void receive ( DatagramPacket p)
      这种组合产生数据包。
      void send ( DatagramPacket p)
      此线索的数据集已发送 。

      3.03 UDP 网络应用程序

      下图是UDP发射机和接收机的交互式表示式。

      为了建立UDP通信,必须构建发送程序和接收程序,显然,只有接收程序才能先运行,以避免由于发送者提供的数据无法接受而造成数据损失。 因此,接收终端程序必须先完成。

      • UDP完成数据传输。
      • 联合民主党已完成接收数据。

      四、TCP通信

      • TCP对话,如UDP通信,使两台计算机能够进行通信,通信的两侧必须建造插座物体。
      • 区别在于,有了UDP,只有发件人和接收人。对客户和服务器不加区分。数据可以随机在计算机之间传送。虽然客户与服务器之间的TCP互动可以明确识别,但缺乏关于如何进行沟通的信息。在通信时,为了进行通信,客户端必须首先连接到服务器。服务器不允许与客户端通信 。此外,服务器侧软件必须提前启动。正在建立客户连接。
      • 为了实施TCP进程,JDK提供了两种选择。服务器套件类就是一个例子。用于表示服务器端,一个例子就是索克特类。用于表示客户端。 通信时,创建服务器套件对象以首先代表服务器客户端 。对象对应于服务开始。然后等待客户连接。然后,代表客户创建一个 Socket 对象, 以便向服务器提出连接请求 。服务器端响应请求,两者的连结开始沟通

      4.1 ServerSocket

      服务器终端程序必须首先在构建 TCP 程序时构建。 JDK 的 java 。 网络包包括一个服务器套件类, 示例对象可以在其中完成服务器段程序 。

      • ServerSocket的建筑方法
      ServerSocket(int port)
      创建连接到某个端口的服务器集。

      使用这种建筑技术(参数端口是端口号)将服务器套件的物体绑在一定的端口号上。

      • 通用服务器套件方法
      Socket accept()
      这组连接可以被听到和接收
      void bind ( SocketAddress endpoint)
      ServerSocket绑在特定IP地址和端口号上。
      void close()
      关闭此套接字。
      InetAddress getInetAddress()
      返回服务器套接字的本地地址 。

      ServerSocket负责监听计算机的端口号。在服务器套件对象创建后,它必须保持引用对象的接受()功能。接受客户询问。当使用被接受() 函数时,服务器端软件将被禁用 。它在客户提出连接请求之前不会运作。接受() 函数产生一个可用于与客户端通信的 Scoket 对象 。这一程序将无限期地执行。

      4.2 Socket ServerSocket

      客户可以完成服务端程序, 但服务器端程序尚不能完成通信, 从而需要使用客户对客户程序,

      • 套套接字的方法
      Socket ( String host, int port)
      创建一个流字符串并将其连接到所提供的主机端口号 。

      通过使用这种构造技术建造套件天体,在所提供的地址和端口运行的服务器程序根据参数连接,主机获得一个字符串类型的IP地址。

      Socket ( InetAddress address, int port)
      创建串行字符串并将其链接到所提供的 IP 地址的端口号 。

      该方法参数address用于接收一个InetAddress类型的对象,该对象用于封装一个IP 地址。 在以上套套接字的方法中,最常用的是第一个构造方法。

      • 索克特的标准技术

      在索克特班最流行的方法中GetInputstream () 和 GetOutstream () 分别用来收集输入和输出流。当客户与服务挂钩时,以IO流的形式,数据是交互式的。从而实现通信。

      方法声明 功能描述
      int getPort() 此函数产生一个与Socket 对象服务器端端相关的端口号的整型对象。
      InetAddress getLocalAddress() 此方法用于检索与 Socket 对象相关的本地 IP 地址,并加密 IP 地址, 并将其作为 InnetAddress 类型对象返回 。
      void close() 此方法用于结束 Socket 连接和通信 。 在关闭挂坠前, 所有与套接字相关的输入/ 输出流都应该关闭, 因为一个良好的进程应该释放所有资源, 当执行完成后 。
      InputStream getInputStream() 此函数产生一个输入Stream对象, 如果对子由服务器端的Socket 提供, 则用于读取客户端发送的号码, 而不是服务器端发送的数据 。
      OutputStream getOutputStream() 此函数产生输出Stream 对象, 如果由 Socket 从服务器端返回, 则用于向客户端传输数据, 然后数据传输到服务器端 。

      在索克特班最流行的方法中GetInputstream () 和 GetOutstream () 分别用来收集输入和输出流。当客户与服务挂钩时,以IO流的形式,数据是交互式的。从而实现通信。

      四.3. 简单的TCP网络应用程序

      要建立 TCP 通信,必须建立一个服务器终端程序和客户端程序,首先需要一个服务器终端程序,以确保数据传输的完整性。

      客户端程序:

      文件上传案例

      大多数服务器现在都提供文件上载, 这显然需要使用 TCP 协议, 因为文件上载需要数据安全和完整性。 下一个假想是图片上载, 如下图所示 。

      • 然后创建服务器终端软件,用于接收图像。
      • 准备客户端并完成图片上传。

      4. 5 多线版本的文件上传状态

      确认服务器可以同时接收多个客户端上传的文件 。

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

          热门文章

          文章分类