第12章Java的网络编程 Java最初是作为一种网络编程语言出现的,它能 够使用网络上的各种资源和数据与服务器建立各 种传输通道,将自己的数据传送到网络的各个地 方。你可以用Java很轻松地完成这些工作,因为 Java类库提供了很强大的网络功能
第12章 Java的网络编程 Java最初是作为一种网络编程语言出现的,它能 够使用网络上的各种资源和数据与服务器建立各 种传输通道,将自己的数据传送到网络的各个地 方。你可以用Java很轻松地完成这些工作,因为 Java类库提供了很强大的网络功能
本章要点 ■网络基础知识 ■]ava网络编程概述 ava网络类和接口 ■基于URL的网络编程 ■基于 Socket的网络编程 ■数据报通信的应用
本章要点 ◼网络基础知识 ◼Java网络编程概述 ◼Java网络类和接口 ◼基于URL的网络编程 ◼基于Socket的网络编程 ◼数据报通信的应用
12.1网络基础知识 Application TCP/IP (Transmission Control (hTtp, ftp telnet Protocol传输控制协议/ nternet Transport Protocol网间协议)是 Internet的主要 〔TCP,UDP1) 协议,定义了计算机和外设进行通 信所使用的规则。TCP/P网络参考 Network 模型包括五个层次:应用层、传输 (P,… 层、网络层、链路层、物理层 (device driver, . . ISO/OSI网络参考模型则包括七 个层次:应用层、表示层、会话层、 物理层 传输层、网络层、链路层、物理层
TCP/IP(Transmission Control Protocol传输控制协议/Internet Protocol网间协议)是Internet的主要 协议,定义了计算机和外设进行通 信所使用的规则。TCP/IP网络参考 模型包括五个层次:应用层、传输 层、网络层、链路层、物理层。 ISO/OSI网络参考模型则包括七 个层次:应用层、表示层、会话层、 传输层、网络层、链路层、物理层。 12.1 网络基础知识 物理层
12.1网络基础知识 大多数基于 Internet的应用程序被看作TCP/P网络的最上 层—应用层,如:ftp,htp,smtp,pop3, telnet,ntp等。 网络层对TCP/P网络中的硬件资源进行标识。连接到 TCP/IP网络中的每台计算机(或其他设备)都有唯一的地址, 这就是卫地址。IP地址实质上是一个32位的整数,通常以 “%d%d.%d%d”的形式表示,每个d是一个8位整数。 在TCP/IP网络中,不同的机器之间进行通信时,数据的 传输是由传输层控制的,这包括数据要发往的目标机器及应 用程序、数据的质量控制等。 TCP/IP网络中最常用的传输 协议就是TCP( Transport Control Protocol)和UDP(User Datagram Protocol)
大多数基于Internet的应用程序被看作TCP/IP网络的最上 层——应用层, 如:ftp,http,smtp,pop3,telnet,nntp等。 网络层对TCP/IP网络中的硬件资源进行标识。连接到 TCP/IP网络中的每台计算机(或其他设备)都有唯一的地址, 这就是IP地址。IP地址实质上是一个32位的整数,通常以 “%d.%d.%d.%d”的形式表示,每个d是一个8位整数。 在TCP/IP网络中,不同的机器之间进行通信时,数据的 传输是由传输层控制的,这包括数据要发往的目标机器及应 用程序、数据的质量控制等。 TCP/IP网络中最常用的传输 协议就是TCP(Transport Control Protocol)和UDP(User Datagram Protocol)。 12.1 网络基础知识
12.1网络基础知识 台机器通常只通过一条链路连接到网络上,即它只有一 个IP地址,但一台机器中往往有很多应用程序需要进行网络 通信,如何区分呢?这就要靠网络端口号(pot)了 端口号是一个标记机器的逻辑通信信道的正整数,端口号 不是物理实体。IP地址和端口号组成了所谓的 Socket, Socket 是网络上运行的程序之间双向通信链路的最后终结点,它是 TCP和UDP的基础 ftp IP与端口号组合 23 IP, port 而得出的 Socket, 21 telnet Socket 可以完全分辨 客户程序 80 http Internet上运行的 程序 其他服务 端口 网络服务
一台机器通常只通过一条链路连接到网络上,即它只有一 个IP地址,但一台机器中往往有很多应用程序需要进行网络 通信,如何区分呢?这就要靠网络端口号(port)了。 端口号是一个标记机器的逻辑通信信道的正整数,端口号 不是物理实体。IP地址和端口号组成了所谓的Socket,Socket 是网络上运行的程序之间双向通信链路的最后终结点,它是 TCP和UDP的基础。 网络服务 http ftp 其他服务 23 telnet 端口 21 客户程序 80 Socket IP与端口号组合 IP,port 而得出的Socket, 可以完全分辨 Internet上运行的 程序。 12.1 网络基础知识
12.1网络基础知识 端口号是用一个16位的整数来表达的,其范 围为0~65535,其中0~1023为系统所保留,专 门给那些通用的服务(wel- known services),如 htt服务的端口号为80, telnet服务的端口号为21 ftp服务的端口为23,…因此,当我们编写通信程 序时,应选择一个大于1023的数作为端口号,以 免发生冲突
端口号是用一个16位的整数来表达的,其范 围为0~65535,其中0~1023为系统所保留,专 门给那些通用的服务(well-known services),如 http服务的端口号为80,telnet服务的端口号为21, ftp服务的端口为23,…因此,当我们编写通信程 序时,应选择一个大于1023的数作为端口号,以 免发生冲突。 12.1 网络基础知识
12.1网络基础知识 传输层通常以TCP和UDP协议来控制端点到端点的通 信。用于通信的端点是由 Socket来定义的, Socket是由IP 地址和端口号组成的。 传输控制协议(TCP)是在端点与端点之间建立持续 的连接而进行通信。建立连接后,发送端将发送的数据印 记了序列号和错误检测代码,并以字节流的方式发送出去; 接收端则对数据进行错误检査并按序列顺序将数据整理好, 数据在需要时可以重新发送,因此整个字节流到达接收端 时完好无缺。这与两个人打电话的情形是相似的 TCP协议具有可靠性和有序性,并且以字节流的方式 发送数据,它通常被称为流通信协议
传输层通常以TCP和UDP协议来控制端点到端点的通 信。用于通信的端点是由Socket来定义的,Socket是由IP 地址和端口号组成的。 传输控制协议(TCP)是在端点与端点之间建立持续 的连接而进行通信。建立连接后,发送端将发送的数据印 记了序列号和错误检测代码,并以字节流的方式发送出去; 接收端则对数据进行错误检查并按序列顺序将数据整理好, 数据在需要时可以重新发送,因此整个字节流到达接收端 时完好无缺。这与两个人打电话的情形是相似的。 TCP协议具有可靠性和有序性,并且以字节流的方式 发送数据,它通常被称为流通信协议。 12.1 网络基础知识
12.1网络基础知识 与TCP协议不同,用户数据报协议(UDP)则 是一种无连接的传输协议。利用UDP协议进行数 据传输时,首先需要将要传输的数据定义成数据 报( Datagram),在数据报中指明数据所要达到的 端点( Socket,主机地址和端口号),然后再将数 据报发送出去。这种传输方式是无序的,也不能 确保绝对的安全可靠,但它很简单也具有比较高 的效率,这与通过邮局发送邮件的情形非常相似
与TCP协议不同,用户数据报协议(UDP)则 是一种无连接的传输协议。利用UDP协议进行数 据传输时,首先需要将要传输的数据定义成数据 报(Datagram),在数据报中指明数据所要达到的 端点(Socket,主机地址和端口号),然后再将数 据报发送出去。这种传输方式是无序的,也不能 确保绝对的安全可靠,但它很简单也具有比较高 的效率,这与通过邮局发送邮件的情形非常相似。 12.1 网络基础知识
12.1网络基础知识 server 2[n TCP app app app port port ort TCP or UDP Packet Data Port*Data
12.1 网络基础知识
12.1网络基础知识 TCP协议和UDP协议各有各的用处。当对所传 输的数据具有时序性和可靠性等要求时,应使用 TCP协议;当传输的数据比较简单、对时序等无 要求时,UDP协议能发挥更好的作用,如ping、 发送时间数据等
TCP协议和UDP协议各有各的用处。当对所传 输的数据具有时序性和可靠性等要求时,应使用 TCP协议;当传输的数据比较简单、对时序等无 要求时,UDP协议能发挥更好的作用,如ping、 发送时间数据等。 12.1 网络基础知识