12 Socket编程.ppt

上传人:qwe****56 文档编号:79030646 上传时间:2023-03-19 格式:PPT 页数:16 大小:216KB
返回 下载 相关 举报
12 Socket编程.ppt_第1页
第1页 / 共16页
12 Socket编程.ppt_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《12 Socket编程.ppt》由会员分享,可在线阅读,更多相关《12 Socket编程.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1.2 Socket编程n1、TCP Socket通信程序的开发步骤n2、服务器端程序的编写n3、客户端程序的编写11、TCP Socket通信程序的开发步骤 开发步骤:n(1)初始化服务器,建立socket对象,等待客户机的连接请求。n(2)初始化客户机,建立socket对象,向服务器发出连接请求。n(3)服务器响应客户机,建立连接。n(4)客户机向服务器发送请求数据。n(5)服务器接受客户机请求数据。21、TCP Socket通信程序的开发步骤n(6)服务器处理数据,并把处理结果返回给客户机。n(7)客户机接收服务器返回的结果。n(8)重复47步,直到客户机结束对话为止。n(9)中断连接,

2、结束通信。包中的Socket和ServerSocket类分别用于在客户机和服务器上创建和管理socket。32、服务器端程序的编写(1)调用ServerSocket类的构造方法,以某端口号为参数,创建一个ServerSocket对象。该对象代表在指定端口监听客户机连接请求的socket。ServerSocket有以下几种构造方法:nA、public ServerSocket(int port)throws IOException;42、服务器端程序的编写 该构造方法在指定端口创建一个ServerSocket对象。若参数port为0,则在任意一个空闲的端口创建socket对象。连接数缺省的情况下

3、允许50个客户等待在连接队列中,如果队列已满,则服务器拒绝新的连接请求。nB、public ServerSocket(int port,int count)throws IOException52、服务器端程序的编写 该构造方法可以设定连接队列的长度。nC、public ServerSocket(int port,int count,InetAddress localAddr)throws IOException;(2)服务程序使用ServerSocket对象的accept()方法接收来自客户程序的请求。n直到接收到从客户程序发来的连接请求(否则一直等待),然后该方法返回一个新建的Socket

4、类的对象,该对象代表和客户方建立的通信链路在服务程序内的通信端点。62、服务器端程序的编写 通过accept()方法返回的Socket对象可以获得客户方的相关信息,如getInetAddress()方法可以获得客户机的IP地址;(3)获取输入输出流对象,使服务器能够通过输入输出流与客户机交互。ngetInputSream()返回对socket的输入流的引用;getOutputStream()返回对socket的输出流的引用。服务器通过OutputStream把信息发给客户;通过InputStream接收客户信息。72、服务器端程序的编写n可以将其他的流类型同与socket关联的InputStr

5、eam和OutputStream联系起来:DataInputStream in=new DataInputStream(is);PrintStream out=new PrintStream(os);BufferedReader in=new BufferedReader(new InputStreamReader(is);njava.io包中的类有两种:基于字节的输入输出流;基于字符的输入输出流。大多数基于字节的流都有相应的基于字符的Reader和Writer类。请看Reader和Writer的层次结构:82、服务器端程序的编写oclass java.io.Reader o class ja

6、va.io.BufferedReader o class java.io.LineNumberReadero class java.io.CharArrayReader o class java.io.FilterReader o class java.io.PushbackReadero class java.io.InputStreamReader o class java.io.FileReadero class java.io.PipedReader o class java.io.StringReaderReader及其子类:9Writer及其子类:oclass java.io.Wr

7、iter o class java.io.BufferedWriter o class java.io.CharArrayWriter o class java.io.FilterWriter o class java.io.OutputStreamWriter o class java.io.FileWritero class java.io.PipedWriter o class java.io.PrintWriter o class java.io.StringWriter2、服务器端程序的编写102、服务器端程序的编写nBufferedReader和BufferedWriter类能有效

8、的缓冲基于字符的流。基于字符的流使用Unicode字符。nCharArrayReader和CharArrayWriter分别从字符数组中读写字符。LineNumberReader是一个缓冲的字符流,可以跟踪行数。nFileReader和FileWriter从文件读写字符。112、服务器端程序的编写nPipedReader和PipedWriter实现管道字符流,用于线程之间传递信息。nStringReader和StringWriter分别从字符串读写字符。nPrintWriter类用于将字符写入流中。122、服务器端程序的编写(4)使用I/O处理的方法完成和客户方的数据传输,处理客户方的数据,并

9、将结果返回给客户方。(5)客户方工作完毕,服务程序通过调用流和socket的close()方法关闭流和连接。n总结:通过使用socket,网络I/O处理类似于本地顺序文件I/O处理。socket为程序员隐藏了很多网络编程的细节。133、客户端程序的编写(1)创建一个Socket,实现与服务器的连接。nSocket socnew Socket(localhost,8000);第一个参数是表示服务器名称的字符串,第二个参数是端口号(服务程序在此提供服务)。第一个参数也可以是服务器的IP地址。若连接成功则该语句返回一个Socket对象;若创建socket时出现I/O错误,则抛出IOException 的一个实例。143、客户端程序的编写 如果服务器地址错误,则抛出UnknownHostException。若连接服务器时发生错误,则抛出ConnectException。(2)客户使用Socket类提供的方法getInputStream()和getOutputStream()获得对输入输出流的引用。此步骤与服务器端编程类似。153、客户端程序的编写(3)处理阶段。通过获得的输入输出流对象进行通信。(4)调用流和Socket的close()方法关闭流和连接。n程序实例:用socket实现的C/S交互程序 例 SocketServer.java 例 SocketClient.java16

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁