十五:网络编程

      最后更新:2022-03-29 16:49

      十五:网络编程

      文章目录

      • 十五:网络编程
        • 1、网络编程概述
        • 二、网络通信要素概述
        • 3. 商品的要件1:知识产权和港口数目
        • 4. 网络协议是通信最重要的要素之一。
          • 四. 网络通信技术TCP和UDP的四份比较
          • 四.2. 套接字
        • 5、TCP网络编程
        • 6、UDP网络编程
        • 7、URL编程
          • 七.1. 了解和演示URL
          • 七.2. 为获取Tomcat服务器数据,使用 URL 网络编程。
          • 7.3. HTTP协议 URL联号类别
          • 七. 四个URRIs、 URLs 和 URNs 之间的差异

      1、网络编程概述

      • Java是一种互联网语言,为网络应用程序序列提供语言层面的支持,使程序员能够迅速创建传统的网络应用程序。

      • Java提供在线图书馆。这是一个简单的互联网连接。网络的内部运作 被埋在爪哇的主机安装系统里JVM负责Java开发了一个全平台网络图书馆。向程序员介绍了统一的网络编程环境。

      • 计算机网络:

        通过通信线路将不同地理位置的计算机与专门的外部设备连接起来,以建立一个标准化的运行良好的网络系统,使大量计算机能够不遗余力地相互传递信息,交换硬件、软件和数据信息,等等。

      • 网络编程的目的:

        数据通过网络协议直接或间接地与其他计算机一起传输和传送。

      • 在网络方案拟订方面,有两个主要问题需要考虑:

        • 如何准确识别网络上的一个或多个主机主机;特定全球定位系统主机应用程序
        • 当发现主机时,数据传输的可靠性和效率如何?

      二、网络通信要素概述

      • 通信双方地址
        • IP
        • 端口号
      • 一些准则(如网络通信协定)。 (有两种参考模式。 )
        • OSI参考模型太完美,无法在因特网上广泛使用。
        • TCP/IP参考模式(或TCP/IP协议):世界性事实上的标准。
      • 网络通信协议

      在这里插入图片描述

      3. 商品的要件1:知识产权和港口数目

      InetAddress是一个IP地址。

      • 一台连接因特网的计算机(通信实体)。
      • 本地回环地址(hostAddress):127.0.0.1主机名(hostName):localhost
      • IP地址分类模式一:IPV4和IPV6
        • IPV4:4字节,包括4 0-255. 约42亿,北美30亿,亚洲4亿。192.168.0.1
        • IPV6:128个位数(16字节),以8个未符号的整数值表示,每个整数以4个十六进制位数表示,用冒号(:)分隔,例如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
      • 模式二 IP 地址分类:公共网络地址(基于网络)和私人地址(基于局域网)。 192 它首先使用秘密地址,仅供组织者内部使用。
      • 特点:不易记忆
      • 互联网主机以两种方式显示地址:
        • 我不确定, atguigu。 这篇文章是我们2011年马拉维大选特别报导的一部分。
        • 主机地址( IP 地址) :
      • InnetAddress类别主要涉及IP地址,有两个子类别:Innet4Address和Innet6Address。
      • 互联网主机网址的域名和IP地址储存在InetAddress类中:ww.g.g.I don't know,atguigu.com,等等。
      • 域名简单易记,当连接到网络时提供主机域名时,域名服务器(DNS)负责将域名转换为IP地址,以便连接到主机。 -- -- 绘制域名。

      在这里插入图片描述

      港口标志在计算机上运行的过程(方法) 。

      • 港口号因方法而异。
      • 0-65535是一个16位数的整数。
      • 端口分类:
        • 确认港口:0 1023. 使用预先界定的服务通信(例如,80号港有HTTP,21号港有FTP,23号港有Telnet)。
        • 1024 49151. 分配给用户流程或应用程序(例如Tomcat负责港口8080, MySQL负责港口3306, Oracle负责港口1521等)。
        • 4915265535. 动态/私营港口:4915265535。
      • 将端口号与IP地址结合起来,创建了一个网络集:Socket。

      在这里插入图片描述

      InnetAdress 类的 Innet 服装

      • InnetAddress 类没有公共构造, 但提供以下静态方法, 以检索 InetAddress 例如 :
        • public static InetAddress getLocalHost()
        • public static InetAddress getByName(String host)
      • InnetAddress包括下列经常使用的方法:
        • public String getHostAddress()返回 IP 地址字符串( 文本形式) 。
        • public String getHostName()要获取此 IP 地址, 请提供您的主机名 。
        • public boolean isReachable(int timeout)检查是否可访问此地址 。

      代码示例:

      4. 网络协议是通信最重要的要素之一。

      • 网络通信协议

        计算机网络上的通信需要各种协议,例如通信协议、速度标准、传输代码、代码结构、传输控制阶段、错误控制等等。

      • 问题是网络协议过于复杂。

        如何实现如此复杂的网络协议? 计算机网络通信包含许多材料,例如源和目标地址的指定、加密解密、压缩、错误控制、交通控制和路线控制。

      • 通信协议分层的思想

        在制定协议时,它不只是它的方式,它的方式 它的方式,它的方式,它的方式 它的方式,它的方式,它的方式,它的方式,它的方式,它的方式,它的方式, 它的方式,它的方式,它的方式,它的方式, 它的方式,它的方式,它的方式,它的方式,它的方式,它的方式,它的方式,它的方式,它的方式,它的方式,它的方式, 它,它的方式,它的方式,它再将它们复合起来。等级法是最典型的组合。这表示,** 同行可以进行沟通,顶层可以调用下一级。它们与以下层面无关。**各层互不影响,使该系统的发展和推广更加容易。

      四. 网络通信技术TCP和UDP的四份比较

      • 传输层协定有两项关键协定:
        • TCP(《转让控制议定书》)是《转让控制议定书》的缩略语。
        • UDP表示用户数据表协议。
      • TCP/IP是以其两项主要协定 -- -- 《传输控制议定书》和《网络连接议定书》 -- -- 命名的,但实际上是一系列协定,其中包括具有不同作用和相互联系的其他协定。
      • IP(因特网协议)协议是允许跨网络交换数据的主要网络协议。
      • 从实际角度看,TCP/IP协议模式由四层组成:物理连接层、IP层、传输层和应用层。
      • TCP协议:
        • 在使用TCP协议建立数据传输渠道之前,必须建立TCP连接。
        • 传输前,采用“三次握手"修改,点对点通讯,等等"是可靠的
        • TCP通信应用程序有两个已经商定的应用程序:客户和服务。
        • 在连接中可进行大数据量的传输
        • 传输完毕,需效率低、现有连接中断
      • UDP协议:
        • 数据包通过附上数据、来源和项目来创建。不需要建立连接
        • 每份数据报告以64K克为限。
        • 发送,不管对方是否准备就绪, 接收未经核实, 因而不可信。
        • 可以广播发送
        • 发送数据结束时没有必要提供资源。

      在这里插入图片描述

      在这里插入图片描述

      四.2. 套接字

      • 基于索科特的网络应用程序开发长期以来一直很受欢迎,现已成为事实上的标准。

      • 网络独特的指定IP地址和端口号合并成单一可识别的识别包。

      • 在通信的两个终端,插座是两个机器间通信的终点。

      • 网络通信基本上是索克特到索克特的通信。

      • Sockets 允许将网络作为流连接, 数据由两个 Sockets 使用 IO 在两个 Sockets 之间发送 。

      • 以客户为基础、以服务为基础、主动开始沟通的应用程序,是等待沟通请求的以客户为基础、以服务为基础的应用程序。

      • Socket分类:

        • 流(流套接字) : 利用 TCP 提供一致的字节服务 。
        • 数据集(数据匹配):利用联合DP提供“尽其最大能力”的数据报告服务。
      • Socket 类的常见构造如下:

        • public Socket(InetAddress address,int port)创建串行字符串并将其链接到所提供的 IP 地址的端口号 。
        • public Socket(String host,int port)创建一个流字符串并将其连接到所提供的主机端口号 。
      • Socket 类的常用方法 :

      • public InputStream getInputStream()此软件包的输入流被返回。 它可用于接收网络通信 。

      • public OutputStream getOutputStream()此软件包的输出流被返回, 可用于传输网络信息 。

      • public InetAddress getInetAddress()此套接字连接到远程 IP 地址; 如果未连接, 返回无效 。

      • public InetAddress getLocalAddress()获取您想要绑定的本地地址。 这是源的 IP 地址 。

      • public int getPort()此软件包连接到远程端口号; 如果软件包尚未连接, 返回 0 。

      • public int getLocalPort()此函数返回此字符串连接的本地端口。 如果软件包没有连接, 返回 - 1。 这是此端的端口号 。

      • public void close()关闭此套接字。套接字被关闭后,它没有资格在今后的网络连接中使用(即不能重新加入或反弹)。有必要生成新的套接字实例。关闭此字符串也会关闭软件包的输入流和输出流 。

      • public void shutdownInput()如果您在软件包单词执行关闭Input () 后从打包的单词输入一串材料, 则该串流返回 EOF( 文件尾端 ) 。 此包不允许您接受输入流中的数据 。

      • public void shutdownOutput()此软件包的输出流已禁用 。关于TCP袜子,将发送先前已书面提交的数据。该序列随后因通常的TCP连接而终止。如果您在用 sutdown 输出 () 关闭套接字后写入 Socket 输出流,当前数据将从 IO 例外中移除 。也就是说,您不能通过此软件包的输出流发送任何数据 。

      5、TCP网络编程

      以套套为基础的TCP方案拟订

      基于综合的爪哇语语言编程分为服务终端编程和客户端编程,如图所示:

      在这里插入图片描述

      客户端Socket 工作进程包括四个关键步骤:

      • 创建套件:根据所提供的服务的 IP 地址或端口号, Socket : Socket 类的对象。如果服务器响应,它会创建一个客户端对服务器的通信频道。如果连接失败,会发生异常现象。
      • 打开 Socket 的输入/ 输出流 : 使用“ 获取输入流 () ” 来获取输入流, 并获取“ 流( ) ” 来获取输出流 。
      • 根据给定的协议, 读/ write socket 通过输入流, 读/ write sock 读取从服务器到行的信息( 但无法读取您在行中输入的信息), 而写套接字则通过输出流将信息放入行 。
      • 关闭套接字: 断开客户端与服务器的连接, 然后放开线条 。

      服务器程序工作进程包括四个关键步骤::

      • 调用ServerSocket(int port) 倾听客户请求, 建造服务器终端, 并将其绑在给定端口上 。
      • 调用accept() 如果客户想要连接, 倾听请求, 接受连接, 并返回到通信包对象 。
      • 请求此套接字对象 。getOutputStream()和getInputStream () 获取输出和输入流,并开始传输和接收网络数据。
      • 关闭ServerSocket和Socket对象:关闭通信合成并结束客户端访问。

      例题

      1. 客户端将数据传输到服务器,然后将数据输出到控制台。
      2. 文件由客户端发送到服务器, 服务器将存储在本地 。
      3. 将文件从客户端发送到服务器, 并在本地存储, 将“ 成功” 返回客户端, 并关闭相关连接 。

      1、例题1

      2、例题2

      3、例题3

      6、UDP网络编程

      • 基于UDP的网络方案已在数据套件和数据套件类别中实施。
      • 通过DatagramSocket发送和接收UDP数据报告,该系统既不保证也不预测UDP数据返回何时到达目的地。
      • 数据组包件对象负责UDP数据报告,其中包括发送方的IP地址和端口号以及接收方的IP地址和端口号。
      • 联合民主党的每一份数据报告都有完整的地址信息,因此不需要在发送者和目的地之间建立联系,其功能类似于交付包。

      一种由 DatagramSocket 类共享的方法 。

      • public DatagramSocket(int port)创建数据套件并将其绑在本地主机的指定端口上。 套接字与通配符地址相关, 从内核获取 IP 地址 。

      • public DatagramSocket(int port,InetAddress laddr)创建数据包并将其指定为本地地址。如果 IP 地址不介于 0 和 65535 之间( 包括两者), 套接字将连接到内核选择的通配符地址 。

      • public void close()此命令关闭数据包 。

      • public void send(DatagramPacket p)从此线索发送数据包。 数据表格包含信息指令, 如要交付的数据、 长度、 远程主机的 IP 地址、 远程主机的端口号 。

      • public void receive(DatagramPacket p)这种组合导致收到数据包。当此方法返回时,收到的数据填报在数据包缓冲地带。数据集还包括发件人的IP地址以及发件人计算机上的端口号。在收到数据之前,停止这一程序。所收到资料的长度储存在数据包物体的长度属性中。如果信息长于软件包的长度,该信息将被截短。

      • public InetAddress getLocalAddress()获取您想要连接的本地地址 。

      • public int getLocalPort()此函数返回您受此字符串约束的本地主机的端口号 。

      • public InetAddress getInetAddress()返回套接字连接的地址。如果软件包没有连接,返回无效。

      • public int getPort()返回软件包的端口。如果软件包没有连接,返回 - 1。

      • public DatagramPacket(byte[] buf,int length)创建数据组包以接受长长的数据包。 长度参数必须小于 buff.Length 。

      • public DatagramPacket(byte[] buf,int length,InetAddress address,int port)内建软件包 已报告的软件包 用于将软件包的长度传送到指定主机上提供的端口号。 参数长度必须小于 buff.Length 。

      • public InetAddress getAddress()计算机的IP地址将被传送或从机器接收,该地址将被退回。

      • public int getPort()返回远程主机的端口号,该端口号将交付给主机或从主机接收数据的人。

      • public byte[] getData()收到或将要传送的数据从缓冲冲抵算起,并持续到括号长度。

      • public int getLength()将要交付或收到的数据的长度被退回。

      流程

      1. 数据包和数据包
      2. 建立发送端,接收端
      3. 建立数据包
      4. Call Socket 的发送和接收方法
      5. 关闭Socket

      发件人和接收人是两个单独的应用程序,同时运作。

      7、URL编程

      七.1. 了解和演示URL

      • URL(Uniform Resource Locator):统一资源定位器(URL)是互联网上资源的地址。

      • 它是一个特定的URL,或一个URL,可用来确定一种资源,并指明在哪里可以找到它。

      • 我们可以通过URL(如最常用的ww.ftp网站)访问因特网上的众多在线资源。浏览器通过解释所提供的 URL,可以在网络上发现相关文件或其他资源。

      • URL的基本结构由五个部分组成:

        <传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数列表

        • 例如: http://192.168.1.100:8080/helloworld/index.jsp#a?username=shkstart&password=123

        • 片段名称: 锚点, 如阅读小说, 位于该章右侧 。

        • 参数列表格式:参数名=参数值&参数名=参数值…

      URL类构造器

      • 我们可以使用下列构造来启动 URL 对象: java.Type URL 以 URL 的名义 。

        • public URL (String spec)可用包含 URL 地址的字符串创建 URL 对象。 例如 : URL URL = 新的 URL I'm not sure, atguigu.b) Com/ ”
        • public URL(URL context, String spec)使用基准 URL 和 相对 URL 创建 URL 对象。 URL 下载 URL 等于 新的 URL (url, “ download.html ” )。
        • public URL(String protocol, String host, String file)例如,新的 URL (http://ww.un.org/) 我不确定, atguigu。 这篇文章是我们对埃及2011年抗议活动特别报导的一部分。 html ;
        • public URL(String protocol, String host, int port, String file)例如, URL Gamelan = 新的 URL (http://ww.un.org/) I'm not sure, atguigu.
      • URL 类构造构造识别非操作异常,必须处理这些异常,通常使用代码。try-catch语句进行捕获。

      URL类常用方法

      • URL 对象的属性在创建后不得更改,但可以使用它提供的方法访问:
        • public String getProtocol()获取 URL 的文件名 。
        • public String getHost()获取 URL 主机名 。
        • public String getPort()获取 URL 的端口号 。
        • public String getPath()要获取 URL, 请浏览到以下文件路径 :
        • public String getFile()获取 URL 文件名
        • public String getQuery()从 URL 获取查询名称 。

      七.2. 为获取Tomcat服务器数据,使用 URL 网络编程。

      7.3. HTTP协议 URL联号类别

      • URL 方法 OpenStream (: 能够读取网络数据)
      • 若希望输出数据,例如,在服务器方面,CGI(公共网关接口-共同网关接口)是这方面的短期措施。这是用户浏览器与服务器应用程序之间的连接, 它传输了少量的数据。然后,我们必须连接到 URL。这样我就能读写了此时此刻,使用 URLConcomnction 。
      • URL 连接: 表示与 URL 引用的远程对象的连接。当一个 URL 被链接时,第一步是使用 OpenConconction () 方法在 URL 对象上创建等效的 URLConsect 对象。如果连接过程失败,这将产生一个IO交换。
        • URL netchinaren = new URL (“http://www.atguigu.com/index.shtml”);
        • URLConnectonn u = netchinaren.openConnection( );
      • URLConcomnction 对象的输入和输出流与当前 CGI 应用程序互动。
        • public Object getContent( ) throws IOException
        • public int getContentLength( )
        • public String getContentType( )
        • public long getDate( )
        • public long getLastModified( )
        • public InputStream getInputStream( )throws IOException
        • public OutputSteram getOutputStream( )throws IOException

      七. 四个URRIs、 URLs 和 URNs 之间的差异

      • URI,是uniform resource identifier,统一资源标识符,寻找资源的唯一方法。URL 代表通用资源定位器 。统一资源定位符,这是一个独特的uri。可用 URL 识别资源 。它还显示资源所在的位置。 而URN,uniform resource name,统一资源命名,这是按名称确定资源的过程。给Java-net@java.com发电子邮件,对不起,Sun,没事的,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,也就是说,从抽象的意义上说,URI是。最高层统一资源标识的子概念说明,另一方面,URL和URN用于确定具体资源。URL 和 URL 均为 URL 。

      • Java 的 URI 中的 URI 示例, 只要符合 URI 的语法要求, 可以是未来或相对的。 然而, URL 类不仅包含语义, 而且还包含资源位置的信息, 因此不能是相对的 。

      在这里插入图片描述

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类