- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
基于Java平台的TCP网络通信及应用研究
?
?
汤小波
【摘要】本文讲述了网络通信的基本原理及java平台下网络通信技术,并用简单明了的步骤阐述了java语言实现过程,旨在指导java平台的网络开发应用。
【关键字】通信ServerSocketSocket
如今,计算机网络已成为现代社会信息交流的重要链路,社会的交流离不开计算机网络通信,如何实现其相互通信呢?基于Java的网络通信就成为一种重要手段。
1、网络通信协议及原理
1.1、网络通信协议
什么是网络通信协议?实现计算机连接和通信的规则称之为网络通信协议。网络通信协议有很多种,目前应用最广泛的有TCP/IP协议和UDP协议。在TCP/IP结构中,传输层有两个重要的高级协议,分别是UDP和TCP,其中UDP称为用户数据报协议,TCP称为传输控制协议。
1.2、TCP通信原理
TCP协议是面向连接的通信协议,即在传输数据前先在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端与服务器端,由客户端向服务器端发出连接请求,每次连接的创建都需要经过“三次握手”。第一次握手,客户端向服务器端发出连接请求,等待服务器确认;第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求;第三次握手,客户端再次向服务器端发送确认信息,确认连接。TCP连接的整个交互过程如图1所示。
1.3、IP地址与端口号
要想使网络中的计算机能够进行通信,必须为每台计算机指定一个标识号,通过这个标识号来指定接收数据的计算机或者发送数据的计算机。在TCP/IP协议中,这个标识号就是IP地址厂白可以唯一标识一台计算机。
通过IP地址可以连接到指定计算机,但如果想访问目标计算机中的某个应用程序,还需要指定端口号。在计算机中,不同的应用程序是通过端口号区分的。接下来通过一个图例来描述IP地址和端口号的作用,如图2所示:
2、TCP协议下的Java通信工具类及实现原理
在JavaJDK网络通信包中提供了两个实现TCP程序的类,一个是ServerSocket类,用于表示服务器端;一个是Socket类,用于表示客户端。在通信工具类ServerSocket中提供了多个构造方法,其中的常用构造方法为ServerSocket(intpat),使用该构造方法在创建ServerSocket对象时,可以将其绑定到一个指定的端口号上(参数port就是端口号)。Socket类提供了一个常用构造器Socket(Stringhost,intport),使用该构造方法在创建Socket对象时,会根据参数去连接在指定地址和端口上运行的服务器程序,其中参数host接收的是一个字符串类型的IP地址。此两通信工具类在计算机网络通信中的原理如图3所示:
在服务器端和客户端建立连接之后,要想实现相互通信,首先由ServerSocket对象监听某台客户端的端口号,由该对象的accept()方法接收客户端的请求,当执行了accept()方法之后,服务器端程序会发生阻塞,直到客户端发出连接请求时,accept()方法才会返回一个Socket对象用于和客户端实现通信,程序才能继续向下执行。两端相互通信,通过数据流来实现,它们分别拥有各自的输入流Inputstream和输出流OutStream,通过对象的getinputStream()方法和getOutputStream()来得到相互的输入与輸出流,通过流的方法来实现流数据的发送和接收。如图4所示:
3、Java语言实现
3.1、针对如图4的服务器端,实现过程如下:
1)创建SenrerSocket对象:
ServerSocketserverSocket=newServerSacket(8888);
2)调用ServerSocket的accept()方法接收数据
Socketclient=serverSocket.accept();
3)获取客户端的输出流
OutputStreamos=client.getOutputStream();
4)当客户端连接到服务端时,向客户端输出数据
os.write《“XXX欢迎你!).getBytes());
3.2、针对如图4的客户端,实现过程如下:
1)创建一个Socket并连接到给出地址和端口号的计算机
Socketclient=newSocket(InetAddress.getLocaiHost(),8888);
2)得到接收数据的流
InputStreamis=client.getlnputStream();
bytesbuff=newbyte[1024];//定义1024个字节数组的缓冲区
3)将数据读到缓冲区中
intlen=is.read
您可能关注的文档
- 中医护理干预辅助小儿推拿治疗脾失健运型小儿厌食的疗效观察.docx
- 四化功图采集设备运行中常见异常功图分析.docx
- 校园恶性贷款问题分析.docx
- 壮族儿童钢琴小曲在中职学校幼教专业教学的融合探究.docx
- B超诊断胎儿脐带绕颈的价值分析.docx
- 基于农村电网改造中网架结构规划方法分析.docx
- 医用高等数学中分部积分法的教学探讨.docx
- 公共卫生突发事件预防与控制思考.docx
- 建筑工程造价预算控制要点及其把握包涵钰.docx
- 有线电视网络中数字电视技术的运用.docx
- 《GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业》.pdf
- GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业.pdf
- GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 中国国家标准 GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 《GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法》.pdf
- 《GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数》.pdf
- GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数.pdf
- 《GB/T 17215.686-2024电测量数据交换 DLMS/COSEM组件 第86部分:社区网络高速PLCISO/IEC 12139-1配置》.pdf
- GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜.pdf
- 《GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜》.pdf
文档评论(0)