课件_socket编程详解

课件_socket编程详解

ID:6053132

大小:103.00 KB

页数:30页

时间:2018-01-01

课件_socket编程详解_第1页
课件_socket编程详解_第2页
课件_socket编程详解_第3页
课件_socket编程详解_第4页
课件_socket编程详解_第5页
资源描述:

《课件_socket编程详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、7.2面向套接字编程我们已经通过了解Socket的接口,知其所以然,下面我们就将通过具体的案例,来熟悉Socket的具体工作方式7.2.1使用套接字实现基于TCP协议的服务器和客户机程序依据TCP协议,在C/S架构的通讯过程中,客户端和服务器的Socket动作如下:客户端:1.用服务器的IP地址和端口号实例化Socket对象。2.调用connect方法,连接到服务器上。3.将发送到服务器的IO流填充到IO对象里,比如BufferedReader/PrintWriter。4.利用Socket提供的ge

2、tInputStream和getOutputStream方法,通过IO流对象,向服务器发送数据流。5.通讯完成后,关闭打开的IO对象和Socket。服务器:1.在服务器,用一个端口来实例化一个ServerSocket对象。此时,服务器就可以这个端口时刻监听从客户端发来的连接请求。2.调用ServerSocket的accept方法,开始监听连接从端口上发来的连接请求。  3.利用accept方法返回的客户端的Socket对象,进行读写IO的操作通讯完成后,关闭打开的流和Socket对象。7.2.1.1

3、开发客户端代码根据上面描述的通讯流程,我们可以按如下的步骤设计服务器端的代码。第一步,依次点击Eclipse环境里的“文件”

4、“新建”

5、“项目”选项,进入“新建项目”的向导对话框,在其中选中“Java项目”,点击“下一步”按钮,在随后弹出的对话框里,在其中的“项目名”一栏里,输入项目名“TCPSocket”,其它的选项目选择系统默认值,再按“完成”按钮,结束创建Java项目的动作。第二步,完成创建项目后,选中集成开发环境左侧的项目名“TCPSocket”,点击右键,在随后弹出的菜单里依次选择“新建”

6、!“类”的选项,创建服务器类的代码。在随后弹出的“新建Java类”的对话框里,输入包名“tcp”,输入文件名“ServerCode”,请注意大小写,在“修饰符”里选中“公用”,在“想要创建哪些方法存根”下,选中“publicstaticvoidmain(String[]args)”单选框,同时把其它两项目取消掉,再按“完成”按钮,可以生成代码。第三步,在生成的代码里,编写引入Java包的代码,只有当我们引入这些包后,我们才能调用这些包里提供的IO和Socket类的方法。packagetcp;impo

7、rtjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.io.PrintWriter;importjava.net.ServerSocket;limportjava.net.Socket;第四步,编写服务器端的主体代码,如下所示。publiccla

8、ssServerCode{//设置端口号publicstaticintportNo=3333;publicstaticvoidmain(String[]args)throwsIOException{ServerSockets=newServerSocket(portNo);System.out.println("TheServerisstart:"+s);//阻塞,直到有客户端连接Socketsocket=s.accept();try{System.out.println("AccepttheCli

9、ent:"+socket);//设置IO句柄BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream()));PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())),true);while(true){Stringstr=in.readLine();if(str.eq

10、uals("byebye")){break;}System.out.println("InServerreveivedtheinfo:"+str);out.println(str);}}finally{System.out.println("closetheServersocketandtheio.");socket.close();s.close();}}}这段代码的主要业务逻辑是:1.在上述代码里的main函数前,我们设置了通讯所用到的端口号,为3333。2.在m

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。