基于java socketTCPIP网络编程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于java socketTCPIP网络编程

基于java socketTCPIP网络编程   摘要:文章首先分析了TCP/IP协议的基本概念以及Socket编程的基本原理,重点在于用java实现基于TCP/IP网络通信的多线程C/S应用程序模型,核心在于使用Java新技术改进传统C/S模型中服务器性能。本文对理解C/S模式通信原理和实际开发高效C/S模式应用程序有较大的参考价值。   关键词:TCP/IP;Socket;Java多线程;NIO非阻塞   中图分类号:TP311.1 文献标识码:A 文章编号:1007-9599 (2013) 02-0000-03   1 TCP/IP-Socket   TCP/IP协议(Transmission Control Protocol/Internet Protocol)定义了电子设备如何连入因特网以及数据如何在它们之间传输的标准。如今,TCP/IP协议已成为计算机网络协议事实上的标准。   我们知道,在计算机网络体系结构中,网络层为主机之间提供逻辑通信,运输层为应用进程之间提供端到端的逻辑通信[1]。而TCP是TCP/IP协议簇的一个面向连接的提供可靠交付服务的运输层协议,这就是说,应用程序在使用TCP协议之前,必须建立TCP连接;在传输数据完毕后,必须释放已经建立的TCP连接。其中,每一条TCP连接只能是点对点的,TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口,而是套接字(socket)或插口。端口号拼接到IP地址即构成套接字。图表1说明了协议、端口、套接字之间的关系。   2 C/S模型   C/S(Client/Server)通信模式是应用程序在因特网上使用TCP/IP协议进行网络通信中既传统又最常用的方式。标准的服务器(Server)设计是让服务器始终运行,始终监听与客户机(Client)的连接。当收到客户机连接时,服务器获得一个用于通信的套接字,并开始与位于该套接字的另一端的客户机对话。客户机初始化这一连接,并借助于代表服务器的套接字与服务器通信。图表2说明了客户机与服务器进行通信的步骤。   3 Java实现C/S通信模式   Java凭借其跨平台特性和对网络编程的强大支持能力,在当今C/S通信模式的网络应用中占据了主导地位。Java网络类库不仅可以开发访问Internet的应用程序,还可以实现网络底层的通信。而且,Java对基于TCP协议的网络通信提供了良好的封装。   在TCP/IP网络体系中,有了IP和TCP协议对数据传输的保证,应用程序可以将需要传输的数据以流的方式准确的在Internet上传递。在Java中,ServerSocket类和Socket类是实现这种流传输的主要工具。   4 ServerSocket   服务器端的工作是建立一个通信终端,被动的等待客户端的连接请求。   典型的TCP服务器要执行以下两步工作:   1)创建一个ServerSocket实例并指定本地端口(port)。这个套接字的功能是侦听该指定端口收到的连接。   ServerSocket ss=new ServerSocket(int port);   2)重复执行:   a)调用ServerSocket的accept()方法来获取下一个客户端连接。当有客户端有连接请求时,服务器对象ss会响应这个连接,创建一个Socket实例,并由accept()方法返回。   Socket s=ss.accept();   b)使用返回的Socket实例的InputStream和OutputStream来跟客户端进行通信。   c)通信结束后,关闭I/O数据流,同时使用Socket类的close() 方法关闭该客户端套接字连接。同时注意异常处理代码的编写。   5 Socket   客户端向服务器发起连接请求后,就被动的等待服务器的响应。   典型的TCP客户端要经过以下几步:   1)创建一个Socket实例。构造函数向指定的远程主机和端口建立一个TCP连接。   Socket s=new Socket(String host,int port);其中,host为远程主机IP,port为其端口。   2)通过套接字的输入输出流(I/O Stream)进行通信,基于性能的考虑,TCP栈的实现一般使用带有缓冲的读写,我们采用BufferedInputStream和BufferedOutputStream来读写数据。   BufferedReader in=new BufferedReader(newInputStreamReader(s.getInputStream()));   PrintWriter out = new PrintWriter(s.getOutputStream(),true);   

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档