- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java 实用程序的设计第11章 Java网络程序的设计
11.1 网络程序设计概述 Internet上的通信协议是以TCP/IP协议簇为基础的。TCP/IP协议簇通常分为4层:网络接口层、网络层、传输层和应用层,如图11-1所示。 图11-1 TCP/IP协议簇的4层模型 11.2 有连接的Socket通信 有连接的Socket通信主要使用包中的Socket类和ServerSocket类,Socket类的对象主要用于标识一个通信Socket连接的客户端和服务器端,而ServerSocket类的对象主要用于监听客户端的连接并建立通信Socket连接。 1. IP地址类InetAddress InetAddress类在包中,用来定义一个IP地址。该类能够完成解析IP地址、查询主机名等功能。InetAddress类没有public的构造方法,一般需要通过调用该类的静态方法返回具体的InetAddress对象。InetAddress的主要接口方法及其含义如表11-1所示。 2. 有连接的通信模型 在Java中,有连接的通信采用流式I/O模型,通信模型见图11-2。 客户端Socket的典型构造方法形如: Socket(InetAddress address,int port [,InetAddress localAddr,int localPort])或 Socket(String host,int port [,InetAddress localAddr,int localPort]) 图11-2 有连接的客户端/服务器通信模型 其中,address为远端IP,port为远端端口号,host为远端主机名,可选的localAddr为本地IP地址,可选的localPort为与当前Socket绑定的本地端口号。Socket类的主要接口方法及其含义如表11-2所示。ServerSocket的构造方法形如: ServerSocket(int port [,int backlog]) 3. 有连接的通信示例 在例11-3中,TCPClient与TCP-Server进行有连接的通信。在连接建立后,双方各自获得对方的IP地址字符串和端口号并在控制台显示。在获得各自I/O流之后,TCPClient接受从键盘输入的语句,并发送给TCPServer。TCPServer接收到消息后,判断其是否为“quit”命令,如果不是,则将收到的消息显示在控制台。此后,TCPServer在收到的消息之前加上字符串“Server reply:”之后,发送回TCPClient。TCPClient在接收到消息后在控制台将消息打印出来。 4. Socket选项 Socket类还有一些与Socket选项相关的接口方法,其中的一些主要方法及含义见表11-3。 11.3 无连接的Socket通信 无连接的Socket通信主要使用包中的DatagramSocket类,而被发送的数据报则是DatagramPacket类的对象。数据报是一种在网络上独立传播的包含两端地址信息的消息。数据报无法保证消息的可靠到达和及时到达,与面向连接的通信方式相比,服务质量较差但开销较小。对于不需要高质量通信服务的应用程序来说,使用无连接的数据报通信方式是简便易行的。 1. DatagramPacket类 创建DatagramPacket的目的可能有两个:使用UDP发送数据到远端机器;使用UDP从远端机器接收数据。DatagramPacket的构造方法至少都包含两个参数,其中一个是字符数组参数,用于存储UDP包的内容,另一个是数据包的长度。DatagramPacket的不同构造方法可用于发送和接收的不同场景。当构造的DatagramPacket用于接收UDP包时,则应使用以下构造方法: DatagramPacket(byte[] buffer,int length) 其中,buffer为存放接收到的数据报的字节数组,length为接收数据的长度。当构造的DatagramPacket用于发送UDP包到一个远程主机时,则应使用以下构造方法: DatagramPacket(byte[] buffer,int length,InetAddress dest_addr,int dest_port)其中,buffer中保存用于填充数据报的内容,length为数据长度,dest_addr为目的主机地址,dest_port为目的端口地址。DatagramPacket类的主要接口方法及其含义如表11-4所示。 2. 无连接的通信模型 无连接的通信模型相比有连接的通信模型来说更为简单,其通信模型如图1
您可能关注的文档
- DEVELOPMENT CONTRIBUTION SCHEME PREPARED 发展贡献的方案制备.doc
- DEVELOPMENT CONTRIBUTION SCHEME 2011发展贡献的方案2011.doc
- Design Patters Composite & Observer的设计模式复合&;观测器.ppt
- Dandelions 2006 first results蒲公英2006第一的的结果.ppt
- DfES Schools in Extremely Challenging Circumstances the WMnet英国学校在极具挑战性的的环境下的wmnet.ppt
- DEVELOPMENT CONTRIBUTION SCHEME发展贡献的方案.doc
- Development partnership Dublin Employment Pact发展伙伴的关系都柏林就业协议.ppt
- Direct Waveguide Couplers for the LHC Crab Cavity Cern直波导腔的欧洲核子的研究中心的大型强子对撞机的蟹.ppt
- Directions Write your answers as complete sentences, citing the 方向写下你的的答案作为完整的句子,引用.doc
- DE型氧化沟毕业的设计.doc
文档评论(0)