- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.1 Socket类 事实上,对网络编程简单的理解就是两台计算机相互传输数据而已。客户机/服务器模式(Client/Server Model)是网络编程的基本模型。Java SDK提供了一些相对简单的API来完成这些工作,Socket就是其中之一。 5.1.1 套接字通信概述 在Internet应用中,通信双方相互作用的主要形式是客户机/服务器模式,即客户机向服务器发出服务请求,服务器收到请求后,提供相应的服务。客户机和服务器并不特指计算机,而是计算机中的应用进程。因此,把通信的双方表示为客户机和服务器应用进程,意味着进行网络通信的前提是必须有服务器和客户机程序同时在执行。 网络上的两个应用进程通过一个双向的通信链接实现数据交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户机和服务器的连接。Socket是TCP/IP协议的一个十分流行的编程界面,称之为“套接字”。Java语言应用程序通过“套接字”向网络发出请求,或者应答网络请求来建立相互间的通信。 1.何谓套接字编程 在Java网络编程中,一个套接字由主机号、端口号和协议名三部分内容组成。主机号即是连接到Internet的计算机(服务器)的Internet地址(IP地址),它在Internet上是惟一的。端口在机器内部代表一个独一无二的抽象场所。有时,一个IP地址并不足以完整标识一个机器,因为在一台物理性的机器中,往往运行着多个服务器程序或客户机程序。由IP地址表达的每台机器也包含了端口(Port)。在设置一个客户机或者服务器的时候,需要选一个无论客户机还是服务器都认可连接的端口。 (1)套接字建立连接的过程 在使用套接字通信过程中主动发起通信的一方称为客户机,接受请求进行通信的一方称为服务器。通过套接字建立连接的过程分为以下三个步骤: 1)服务器建立守护进程,负责Listen(侦听)每个端口(客户机)是否有连接请求。 2)客户机创建一个Socket对象,包括连接的主机号和端口号,指定使用的通信协议,通过发出Connect(连接)请求,与服务器试图建立连接。 3)服务器侦听到客户机的请求,创建一个Socket接受连接对象,发回Accept(接受)消息,即建立起一个连接。Server端和Client端都可以通过Send、Write等方法与对方通信。 在Java网络编程中,通过创建套接字可以建立与其他机器的连接并创建套接字InputStream和OutputStream流对象,套接字输入、输出流完全可以将连接作为一个I/O流来对待。 (2)套接字编程步骤 在使用套接字编写客户机/服务器应用程序时,建立客户机和服务器两端相互通信的过程是一样的,该过程的主要工作可归纳为以下四个步骤。 1)创建Socket对象。 2)获得连接到Socket的输入流/输出流。 3)按照一定的通信协议对Socket进行读/写操作。 4)关闭Socket。 其中,第三步是程序员用来调用Socket和实现程序功能的关键步骤,其他几个步骤在各种程序中基本相同。 5.1.2 客户机套接字 .Socket类是Java执行客户机TCP操作的基础类。Socket类的对象表示一个Socket。客户机使用Socket类的构造函数,创建一个Socket对象,创建的同时会自动向服务器发起连接。套接字的实际工作由SocketImpl类的实例执行。 1.构造函数 .Socket类有多个构造函数,常用的构造函数有如下几个。 (1)public Socket(String host, int prot) throws UnknownHostException,IOException 这个构造函数创建一个流套接字并将其连接到指定主机上的指定端口的TCP Socket,并尝试连接远程主机。其中,host表示主机域名,或者为 null,表示回送地址;port表示端口号。这种指定机器的主机名和服务端口来构造Socket类是创建套接字最简单的方法。 (2)public Socket(InetAddress hostaddress, int port) throw IOException 该构造函数创建一个流套接字并将其连接到指定IP地址的指定端口号。其中参数host address表示IP地址,port表示端口号。如果无法连接,则抛出IOException异常。如果不知道主机的IP地址,需要在创建InetAddress对象时查找发现。例如: try { InetAddress theAddress = InetAddress.getByName(); Socket theSocket = new Socket(theAddress,80); } catch (Un
您可能关注的文档
- 新项目管理 教学课件 陆红第8章项目进度管理 8 3.ppt
- 新项目管理 教学课件 陆红第10章项目风险管理课件 10 3.ppt
- 新项目管理 教学课件 陆红第11章项目收尾 11 1.ppt
- 新项目管理 教学课件 陆红第11章项目收尾 11 2.ppt
- 新项目管理 教学课件 骆珣 第八章.ppt
- 新项目管理 教学课件 骆珣 第二章.ppt
- 新项目管理 教学课件 骆珣 第九章.ppt
- 新项目管理 教学课件 骆珣 第六章.ppt
- 新项目管理 教学课件 骆珣 第七章.ppt
- 新项目管理 教学课件 骆珣 第三章.ppt
- 新网络编程与计算技术 教学课件 刘化君 第6章 UDP数据报套接字编程.ppt
- 新网络编程与计算技术 教学课件 刘化君 第7章 多线程与非阻塞通信.ppt
- 新网络编程与计算技术 教学课件 刘化君 第8章 分布式计算.ppt
- 新网络编程与计算技术 教学课件 刘化君 第9章 Java数据库操作.ppt
- 新网络编程与计算技术 教学课件 刘化君 第10章 JavaMail编程.ppt
- 新网络编程与计算技术 教学课件 刘化君 第11章 基于JXTA的对等计算.ppt
- 新网络编程与计算技术 教学课件 刘化君 第12章 Web Service服务.ppt
- 新网络管理技术教程 教学课件 吴英 等 第00章 绪论.ppt
- 新网络管理技术教程 教学课件 吴英 等 第01章 网管概述.ppt
- 新网络管理技术教程 教学课件 吴英 等 第02章 网络基础.ppt
文档评论(0)