基于javasockettcp-ip网络编程

基于javasockettcp-ip网络编程

ID:34084417

大小:59.55 KB

页数:8页

时间:2019-03-03

基于javasockettcp-ip网络编程_第1页
基于javasockettcp-ip网络编程_第2页
基于javasockettcp-ip网络编程_第3页
基于javasockettcp-ip网络编程_第4页
基于javasockettcp-ip网络编程_第5页
资源描述:

《基于javasockettcp-ip网络编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于javasocketTCP/IP网络编程摘要:文章首先分析了TCP/IP协议的基本概念以及Socket编程的基本原理,重点在于用java实现基于TCP/IP网络通信的多线程C/S应用程序模型,核心在于使用Java新技术改进传统C/S模型中服务器性能。本文对理解C/S模式通信原理和实际开发高效C/S模式应用程序有较大的参考价值。关键词:TCP/IP;Socket;Java多线程;NI0非阻塞中图分类号:TP311.1文献标识码:A文章编号:1007-9599(2013)02-0000-031TCP/IP-SocketTCP/IP协议(TransmissionControlProto

2、col/InternetProtocol)定义了电子设备如何连入因特网以及数据如何在它们之间传输的标准。如今,TCP/IP协议已成为计算机网络协议事实上的标准。我们知道,在计算机网络体系结构中,网络层为主机之间提供逻辑通信,运输层为应用进程之间提供端到端的逻辑通信[1]。而TCP是TCP/IP协议簇的一个面向连接的提供可靠交付服务的运输层协议,这就是说,应用程序在使用TCP协议之前,必须建立TCP连接;在传输数据完毕后,必须释放已经建立的TCP连接。其中,每一条TCP连接只能是点对点的,TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口,而是套接字(s

3、ocket)或插口。端口号拼接到IP地址即构成套接字。图表1说明了协议、端口、套接字之间的关系。1C/S模型C/S(Client/Server)通信模式是应用程序在因特网上使用TCP/IP协议进行网络通信中既传统又最常用的方式。标准的服务器(Server)设计是让服务器始终运行,始终监听与客户机(Client)的连接。当收到客户机连接时,服务器获得一个用于通信的套接字,并开始与位于该套接字的另一端的客户机对话。客户机初始化这一连接,并借助于代表服务器的套接字与服务器通信。图表2说明了客户机与服务器进行通信的步骤。2Java实现C/S通信模式Java凭借其跨平台特性和对网络编程的强大支

4、持能力,在当今C/S通信模式的网络应用中占据了主导地位。Java网络类库不仅可以开发访问Internet的应用程序,还可以实现网络底层的通信。而且,Java对基于TCP协议的网络通信提供了良好的封装。在TCP/IP网络体系中,有了IP和TCP协议对数据传输的保证,应用程序可以将需要传输的数据以流的方式准确的在Internet上传递。在Java中,ServerSocket类和Socket类是实现这种流传输的主要工具。3ServerSocket服务器端的工作是建立一个通信终端,被动的等待客户端的连接请求。典型的TCP服务器要执行以下两步工作:1)创建一个ServerSocket实例并指定

5、本地端口(port)。这个套接字的功能是侦听该指定端口收到的连接。ServerSocketss=newServerSocket(intport);2)重复执行:a)调用ServerSocket的accept()方法来获取下一个客户端连接。当有客户端有连接请求时,服务器对象SS会响应这个连接,创建一个Socket实例,并由accept()方法返回。Sockets二ss.accept();b)使用返回的Socket实例的InputStreom和Outputstream来跟客户端进行通信。c)通信结束后,关闭I/O数据流,同时使用Socket类的close()方法关闭该客户端套接字连接。同

6、时注意异常处理代码的编写。1Socket客户端向服务器发起连接请求后,就被动的等待服务器的响应。典型的TCP客户端要经过以下几步:1)创建一个Socket实例。构造函数向指定的远程主机和端口建立一个TCP连接。Sockets=newSocket(Stringhost,intport);其中,host为远程主机IP,port为其端口。2)通过套接字的输入输出流(I/OStream)进行通信,基于性能的考虑,TCP栈的实现一般使用带有缓冲的读写,我们采用BufferedlnputStream和BufferedOutputStream来读写数据。BufferedReaderin=newBu

7、fferedReader(newInputStreamReader(s.getlnputStream()));PrintWriterout=newPrintWriter(s.getOutputStream(),true);3)使用Socket的close()方法关闭连接。与服务器端类似,也要注意异常处理代码的编写。6服务器性能的不断改进6.1使用多线程上节所展示的C/S模型中的TCP服务器称为“迭代服务器”,迭代服务器按顺序处理客户端的请求,即,服务器在处

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

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

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