《Java与面向对象程序》-12.2 Socket编程_第1页
《Java与面向对象程序》-12.2 Socket编程_第2页
《Java与面向对象程序》-12.2 Socket编程_第3页
《Java与面向对象程序》-12.2 Socket编程_第4页
《Java与面向对象程序》-12.2 Socket编程_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习目标掌握Socket编程方法主要内容Socket概述Socket类和ServerSocket类12.2.1Socket概述网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。通常也称作"套接字",用于描述IP地址和端口。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。12.2.1Socket概述网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。通常也称作"套接字",用于描述IP地址和端口。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。12.2.2Socket类和ServerSocket类Socket类在套接字通信中用来建立客户端程序与服务器连接,构造方法如下:(1)Socket()创建未连接的Socket。没有指定IP地址和端口号,即只创建了客户端对象,但没有去连接任何服务器。(2)Socket(SocketImplimpl)使用用户指定的SocketImpl创建一个未连接的Socket。Impl是子类希望在Socket上使用的SocketImpl的实例。(3)Socket(Stringhost,intport)创建Socket并连接到指定的主机host和端口号port。(4)Socket(InetAddressaddress,intport)创建Socket并连接到指定的IP地址和端口号port。(5)Socket(Stringhost,intport,InetAddresslocalAddr,intlocalPort)创建一个Socket并将其连接到指定远程主机上的指定远程端口。(6)Socket(InetAddressaddress,intport,InetAddresslocalAddr,intlocalPort)创建一个Socket并将其连接到指定远程地址上的指定远程端口。12.2.2Socket类和ServerSocket类Socket类的常用方法如下表:返回类型方法声明功能描述voidbind(SocketAddressbindpoint)将套接字绑定到本地地址voidclose()关闭服务器套接字voidconnect(SocketAddressendpoint)将此套接字连接到服务器12.2.2Socket类和ServerSocket类服务器端套接字类ServerSocket的构造方法如下:(1)ServerSocket(intport)在本地机的指定端口(int)处创建服务器套接字,客户使用此端口与服务器通信。如果端口指定为0,可在本地机上的任何端口处创建服务器套接字。(2)ServerSocket(intport,intbacklog)在本地机的指定端口(int)处创建服务器套接字,第2个参数指出在指定端口处服务器套接字支持的客户连接的最大数。(3)ServerSocket(intport,intbacklog,InetAddressbindAddr)在指定端口(int)处创建服务器套接字,第3个参数用来创建多个宿主机上服务器套接字。服务器套接字只接收指定IP地址上的客户请求。12.2.2Socket类和ServerSocket类ServerSocket常用方法如下表:返回类型方法声明功能描述Socketaccept()在服务器套接字监听客户连接并接收它。此后,客户建立与服务器的连接voidclose()关闭服务器套接字StringtoString()返回作为串的服务器套接字的IP地址和端口号12.2.2Socket类和ServerSocket类12.2.2Socket类和ServerSocket类2.Socket程序通信过程客户端Socket的工作过程通常包含以下4个基本步骤:(1)创建Socket。根据制定的IP地址或端口号构造Socket类对象,如服务器端响应,则建立客户端到服务器端的通信线路。(2)打开连接到Socket的输入/出流。使用getInputStream()方法获得输入流,使用getOutputStream方法获得输出流。(3)按照一定的协议对Socket进行读/写操作。通过输入流读取服务器传入线路的信息(但不能读取自己传入线路的信息),通过输出流将信息写入线路。(4)关闭Socket。断开客户端到服务器的连接,释放线路。对于服务器而言,将上述第一步改为构造ServerSocket类对象,监听客户端的请求并进行响应。基于Socket的C/S通信过程如图12-6所示。12.2.2Socket类和ServerSocket类12.2.2Socket类和ServerSocket类下面编写一个基于Socket的网络服务器与一个客户端通信的程序。(1)编写服务端程序,如例12-2所示。【例12-2】基于Socket的服务端程序12.2.2Socket类和ServerSocket类(2)编写客户端程序,如例12-3所示。【例12-3】基于Socket的客户端程序12.2.2Socket类和ServerSocket类运行结果如图12-7、图12-8所示。【案例12-1】Server和多个客户的通信程序案例描述在C/S模式的实际应用中,一个服务器可以接收来自其他多个客户端的请求,提供相应的服务。编程实现一个服务器和多个客户的通信程序。运行结果如图12-9所示:案例12-1】Server和多个客户的通信程序设计目标熟悉网络通信相关的IO流类;理解Socket编程的基本步骤;

掌握Socket类和ServerSocket类的使用;掌握线程在网络程序中的应用。实现思路(实现代码见配套源代码)通过案例描述可知,此程序中包含服务器端ServerSocket类对象、客户端Socket类对象。(1)服务器端利用多线程响应多客户请求。(2)服务器总是在指定的端口上监听是否有客户请求。(3)一旦监听到客户请求,服务器就会启动一个专门的服务线程来响应该客户的请求。而服务器本身在启动完线程之后马上又进入监听状态,等待下个客户的到来。Socket网络上的两个程序通过一个双向的通信连

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论