- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 网络通信程序设计 Java语言是目前最受欢迎的网络编程语言之一,使用它能够比较轻松地实现网络编程。Java类库中的网络软件包提供了一系列类和接口,实现网络通信功能。 第11章 网络通信程序设计 11.1 网络通信基础 11.2 Java网络包 11.3 InetAddress类 11.4面向连接的Socket网络通信 11.5基于数据报socket的网络通信 11.6 访问URL资源 11.1 网络通信基础 1.套接字 网络套接字是网络上的两个程序经过双向的通信而建立起来的一个实现数据传输的通道,这个双向链路的一端成为一个套接字(Socket)。 套接字是由IP地址和端口号组成,可以看为在两个程序进行通讯连接中的一个端点。 11.1 网络通信基础 使用套接字建立网络连接的过程为:首先服务器端一直监听端口是否有连接请求,当客户端向服务器端发送连接请求时,服务器端向客户端返回接受连接建立请求的信息。客户端接收到该信息后,连接便建立起来。一旦连接建立,客户和服务器之间就可以通过该端口进行数据交换了。 11.1 网络通信基础 2.TCP和UDP传输协议 TCP是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的、无差错的数据流。 在进行数据传输之前,发送方和接收方的两个socket之间必须先建立连接,以便使数据在TCP协议的基础上进行通信 11.1 网络通信基础 UDP是User Datagram Protocol的简称,是一种无连接的协议。每个数据报都是一个独立的信息,包括完整的源地址或目的地址. 11.1 网络通信基础 客户机/服务器编程模型 : 通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。 11.2 Java网络包 Java网络软件包由包和包组成 。 11.2 Java网络包 11.2 Java网络包 一般来说,包中的类按功能可分为三大部分: 面向连接的网络类 基于数据报的网络类 通过统一资源定位器(URL)进行Web资源访问的网络类。 11.3 InetAddress类 InetAddress类表示一个IP地址,可以作为方法的参数传递给流套接字类和数据报套接字类的构造方法或其它的方法。 Inet4Address 和 Inet6Address是InetAddrress的子类。其中,Inet4Address类代表IPv4地址,Inet6Address类代表IPv6地址。 11.3 InetAddress类 11.3 InetAddress类 11.3 InetAddress类 InetAddress类中只提供了一个无参数的构造方法,并且方法的访问权限不是public,因此不能直接创建一个拥有具体IP地址的InetAddress对象。 可以调用InetAddress类的方法来创建一个InetAddress对象 : public static InetAddress[] getAllByName(String host) public static InetAddress getByAddress(byte [] addr) public static InetAddress getByAddress(String host, byte [] addr) 11.3 InetAddress类 例如: InetAddress ia = InetAddress. getByName (); 11.3 InetAddress类 可以调用InetAddress的各种方法来获得InetAddress子类对象中的IP地址信息 : ? public byte[] getAddress() 返回InetAddress对象的IP地址,放在字节数组中。 ? public String getCanonicalHostName () 返回InetAddress对象的标准的主机名。 ? public String getHostName () 返回InetAddress对象的主机名。 ? public String geHosttAddress() 返回InetAddress对象的IP地址,表示方式为字符串常量。 11.3 InetAddress类 11.4面向连接的Socket网络通信 Java网络包提供了Socket类和ServerSocket类来实现面向连接的Socket网络通信 。 使用Socket进行Client/Serv
文档评论(0)