- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Server端程序 ServerSocket(port #) Socket socket = ServerSocket.accept() 接收连接 OutputStream InputStream Close Socket Client端程序 Socket(host, port #) 与服务器建立连接 OutputStream InputStream Close Socket socket 12.5 基于Socket的网络编程—Socket通信 1、建立Socket 在客户端: try{ Socket client = new Socket(host, 4444); }catch(IOException e){} 在服务器端: try{ ServerSocket server = new ServerSocket(4444); }catch(IOException e){} Socket socket = null; try{ socket = server.accept(); //等待客户端连接 }catch(IOException e){} 12.5 基于Socket的网络编程—Socket通信 BufferedReader = new BufferedReader( new InputStreamReader( socket.getInputStream() ) ); BufferedWriter = new BufferedWriter( new InputStreamWriter( socket.getOutputStream() ) ); 2、在客户端和服务器端同时打开输入/输出流 类Socket提供了方法getInputStream()和getOutputStream()来得到Socket对应的输入/输出流以进行数据读写(传输)操作,它们分别返回InputStream对象和OutputStream对象。 为了便于读写数据,应在返回的输入/输出流对象上建立过滤流,如DataInputStram/DataOutputStram、BufferedInputStream/ BufferedOutputStream、PrintStream;InputStreamReader/ OutputStreamWriter、BufferedReader/ BufferedWriter、PrintWriter等。 12.5 基于Socket的网络编程—Socket通信 3、关闭输入/输出流和Socket 在客户端和服务器端分别关闭输入/输出流和Socket:先关闭所有相关的输入/输出流,再关闭Socket。 12.5 基于Socket的网络编程—Socket通信 创建服务器(端口号) 定义数据成员 服务器等待 网络连接 建立socket流 发送谈话信息 接收用户谈话信息 创建Socket实例 定义数据成员 建立socket流 发送谈话信息 接收服务器谈话信息 关闭流 accept() 4444 4444 结束谈话(Bye.) 结束谈话(Bye.) 关闭流 服务器端 客户端 12.5 基于Socket的网络编程—— 简单的Client/Server 在本地机器上测试网络程序用回绕地址 Socket socket = new Socket(“”, 4444); 建立socket连接后,还应该建立输入输出数据流。 要控制好输入/输出流和Socket关闭的时间。 如果网络的一端已经关闭,另一端读到null。 在运行时,服务器端程序一般应先行启动。 Server(1111) client(2222) Server(2222) client(1111) Server 解决方案一: 在一台计算机上一次启动多个服务器程序,只要端口号不同。 myserver1 --------myclient1 myserver2--------myclient2 12.5 基于Socket的网络编程—— 支持多Client 解决方案二: 将服务器写成多线程的,不同的处理线程为不同的客户服务。主线程只负责循环等待,处理线程负责网络连接,接收客户输入的信息。 //主线程 while (true) { accept a connection ; create a thread to deal with the client ; }end while Server
您可能关注的文档
- Flash动画技术与艺术手法解析张英杰Flash动画技术与艺术手法解析张英杰.ppt
- 商务电脑实务连卫民5章节.ppt
- Flash动画简明教程1章节.ppt
- flash动画入门2章节.ppt
- Flash动画设计3章节.ppt
- flash动画设计第1章节1章节.ppt
- flash动画设计第3章节1章节.ppt
- 商务法律应用刘海光_201010.ppt
- flash动画设计第8章节1章节.ppt
- 商务法律应用刘海光201010.ppt
- MCSEGuidetoManagingaMicrosoftWindows……7章节.ppt
- MCSEGuidetoMicrosoftWindowsXPProfess……1章节.ppt
- 商务秘书教程杨光汉王瑞成主编商务秘书教程第7章节.ppt
- MCSEGuidetoMicrosoftWindowsXPProfess……2章节.ppt
- MCSEGuidetoMicrosoftWindowsXPProfess……3章节.ppt
- 商务秘书教程杨光汉王瑞成主编商务秘书教程第8章节.ppt
- MCSEGuidetoMicrosoftWindowsXPProfess……4章节.ppt
- MCSEGuidetoMicrosoftWindowsXPProfess……5章节.ppt
- 商务秘书教程杨光汉王瑞成主编商务秘书教程第9章节.ppt
- MCSEGuidetoMicrosoftWindowsXPProfess……6章节.ppt
文档评论(0)