Java网络编程(一)TCP、UDP详解(雷惊风).docxVIP

Java网络编程(一)TCP、UDP详解(雷惊风).docx

  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文档。上传文档
查看更多
TCP/UDP详解网络分层网络整体设计是一个很宽泛很复杂的问题,为了解决这个问题,很多网络采用分层的方式解决,其中比较常见的有两种:开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,就是我们平时所说的7层模式,从低到高分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP参考模型:分为4层,物理链路层、网络层,传输层,应用层。TCP/IP中的物理链路层对应OSI中的物理层和数据链路层 ,网络层对应网络层,传输层对应传输层,应用层对应会话层 、表示层、应用层 。基本概念TCP(传输控制协议)、UDP(用户数据报协议)是位于传输层的协议。TCP协议是一种安全性很高的协议,它能够保证数据安全准确的到达接收方,并保证数据顺序与发送时一致,TCP是面向连接的协议。每次建立连接都要经过3次握手:客户端发送一个SYN=j标志的TCP报文到服务器,进入等待状态。服务端接收到客户端的TCP报文后,会回复一个带ACK=j+1与SYN= k标志的报文,表示对1中报文的回复。当客户端接收到服务端的ACK+SYN包后,会回复一个ACK=K+1的包,发送完后,客户端与服务端进入ESTABLISHED状态,完成三次握手,这里需要注意,这些操作完成后客户端与服务器只是建立了连接,尚未真正传输数据,后续便可以传递我们想要传输的数据。数据传输完成后,客户端或者是服务器会发送断开连接的请求,不一定是服务器也不一定是客户端。断开连接需要4次握手,需要4次才能断开连接的原因是,当客户端或者服务器发起断开链接时,可能另一方还没有完成数据的操作,所以会多一步等待流程。UDP是无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传送目的地,至于能够达到目的地,达到目的地的时间以及内容的正确性都不能保证。TCP与UDP对比:1. 在安全性能方面,TCP要略胜一筹,可靠的传输是要付出代价的,对数据内容的正确性的检验必然会占用计算机处理时间和网络带宽。通信过程中不容易出现数据丢失的现象,一方中断,两方的通信就会结束,UDP数据包传送的过程当中,一方中断,数据包有很大的可能性会丢失,还有可能传来的数据包的顺序是错乱的; 2. 在效率方面,UDP要比TCP快很多,最起码得知道他不用建立连接,至少节省了3次握手需要的时间。许多应用中并不需要保证严格的传输可靠性,比如视频会议系统,并不要求视频音频数据绝对正确,只要能够连贯就可以了。TCP连接基本流程服务端创建ServerSocket,并绑定域名与端口。服务端调用accept()方法等待客户端调用。创建客户端Socket,指定服务器地址和端口。客户端通过输出流写入数据。服务端通过输入流读取客户端发送的数据。服务端通过输出流回复客户端。客户端通过输入流读取服务端的回复信息。实现TCP连接实例。服务端代码如下:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;/** * @author liuyonglei * TCPServer端 */public class TCPServer {public static void main(String[] args) { try { //1、创建服务器端ServerSocket,绑定端口,进行监听 ServerSocket serverSocket = new ServerSocket(12345); System.out.println(LYL_服务器等待客户端连接); //2、调用accept()方法,开始监听 等待客户端连接 Socket socket = serverSocket.accept(); //3、获取输入流读取客户端信息 InputStream is = socket.getInputStream();//字节输入流 InputStreamReader isr = new InputStreamReader(is);//将字节流转化为字符流 BufferedReader br = new BufferedReader(isr);//为输入流添加缓冲 String i

文档评论(0)

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

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

1亿VIP精品文档

相关文档