《第11章 Socket编程.ppt》由会员分享,可在线阅读,更多相关《第11章 Socket编程.ppt(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第十一章 Socket编程本章主要内容11.1 Socket简介 11.2 重要的API11.3 开发一个Server-Client模型的程序 11.4 总结11.1 简介11.1.1 什么是Socket所谓socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。以JDK-1.6为例,Socket和ServerSocket类库位于包中。ServerSocket用于服务器,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这实例,完成所需的会话。对于一个网络连接来说,套接
2、字是平等的,并没有差别,不因为在服务器端或客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类成的11.1.2 重要的APIaccept用于产生“阻塞”,直到服务端接受到一个连接,并且返回一个客户端的Socket对象实例 getInputStream 服务端获得网络连接输入,同时返回一个IutputStream对象实例 getOutputStream 连接的另一端将得到输入,同时返回一个OutputStream对象实例 ServerSocket11.1.2 重要的APIconnect将此客户端连接到服务器 getInputStre
3、am 客户端获得网络连接输入,同时返回一个IutputStream对象实例 getOutputStream 连接的另一端将得到输入,同时返回一个OutputStream对象实例 Socket11.3 开发一个Server-Client模型的程序服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。Socket ss=new ServerSocket(10000);while(true)Socket socket
4、=ss.accept();BufferedReaderin=new BufferedReader(new InputStreamReader(socket.getInputStream();PrintWriterout=new PrintWriter(socket.getOutputStream(),true);String line=in.readLine();out.println(you input is:+line);out.close();in.close();socket.close();ss.close();最后一定要记得关闭资源!客户端,使用Socket对网络上某一个服务器的某
5、一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。11.3 开发一个Server-Client模型的程序Socket socket=new Socket(xxx.xxx.xxx.xxx,10000);BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream();PrintWriterout=new PrintWriter(socket.getOutputStream(),true);Buffe
6、redReader line=new BufferedReader(new InputStreamReader(System.in);out.println(line.readLine();line.close();out.close();in.close();socket.close();11.4 总结Socket编程实现原理(从连接的简历到连接的结束,每个socket应用都大致包括以下几个基本步骤):1、服务器端socket绑定于特定端口,服务器侦听socket等待连接请求;2、客户端向服务器和特定端口提交连接请求;3、服务器接受连接,产生一新的socket,绑定到另一端口,由此socket来处理和客户端的交互,服务器继续侦听原socket来接受其他客户端的连接请求;4、连接成功后客户端也产生一socket,并通过它来与服务器端通讯(注意客户端socket并不与特定端口绑定);5、接下来,服务器端和客户端就通过读取和写入各自的socket来进行通讯