UDP(User Datagram Protocol 用户数据报协议)

TCP(Transmission Control Protocol 传输控制协议)

  UDP是一种非面向连接的传输协议,它的实现是通过向指定ip的指定端口发送一定字节长的数据包完成通信,UDP协议不会在意接收端有没有收到数据包,不对传输的数据包到达的顺序、能否到达指定地址做任何保证,因此是一种不可靠但速度很快的协议,通常用在即时通讯、网络即时视频传输等不太在意丢失个别数据包的情况下。

在java中,通过UDP协议进行通信是使用DatagramSocket对象来操作相关数据,用DatagramPacket对象来抽象表示数据包,DatagramSocket类的构造函数可以指定接收端所监听的端口或者指定发送端发送数据使用的端口,在发送端DatagramPacket类的构造函数可以接受一个已存在数据的字节数组并指定要发送到的主机名(IP地址)及其端口,然后用DatagramSocket对象的send()方法将此数据包发送到指定地址,在接收端DatagramPacket类的构造函数只指定一个字节数组用于存放数据,然后用DatagramSocket服务的receive()方法(此方法为接受数据包的阻塞式方法)将传来的数据包中的数据存入此字节数组中,(可用DatagramPacket中的getLength()方法获取传来的数据包中字节数组的长度用于接收端对数据的操作)。
  TCP是一种面向连接的可靠的、基于字节流的传输层通信协议,TCP协议通过服务端和客户端的三次握手可以建立一个可靠的连接,连接建立后,在Java中就可以用io流技术来传输信息。
  java中用于TCP协议的服务类有两个,一个是用于客户端的Socket类,一个是用于服务器端的ServerSocket类,ServerSocket服务的accept()方法可以返回一个Socket对象,通过此Socket对象可以用Socket类中的getInputStream()和getOutputStream()得到客户端的输出流和输入流(两端输入与输出逻辑对称),通过操作流对象可以实现客户端与服务器端的双向传输。
  为了使服务器端可以同时处理多个客户端请求,可以通过多线程技术来实现,具体方法是在服务器端中建立死循环,通过ServerSocket服务的accept()方法(阻塞式方法)获得服务端Socket对象,通过将Socket对象传入实现了Runnable接口的类中建立新对象,将对客户端的回应代码封装入该类中的run()方法中,通过在死循环中的阻塞方法后建立新线程的方式,实现总有一个accept()方法处于阻塞状态中等待回应客户端的状态。

UDP和TCP的区别的更多相关文章

  1. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器    定义:       ...

  2. UDP和TCP的区别(转)

    TCP协议与UDP协议的区别    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...

  3. Java UDP和TCP的区别

    为什么要写这篇博客:是这样的,最近听朋友说,有不少公司面试的时候会问道TCP和UDp的却别,所以就写出一篇简单的来描述他们之间的区别,送给那些即将面试的朋友们. UDP: 1.UDP, a.将数据以及 ...

  4. UDP和TCP的区别?

    区别总结: 1.TCP面向连接,UDP的面向无连接的,即发送数据之前不需要建立简介. 2.TCP提供可靠的数据传输,有发送应答机制,超时重传机制,错误校验机制,流量控制机制保证传输的安全,不丢失,不重 ...

  5. TCP/IP协议中的UDP与TCP的区别

    TCP面向连接,UDP面向非连接即发送数据前不需要建立链接TCP提供可靠的服务(数据传输),UDP无法保证,它没有TCP的接受确认.窗口等机制,因此也不需要交换控制信息:发生丢包也一概不负责.TCP面 ...

  6. UDP和TCP的区别和联系

    UDP特点 将数据源和目的封装在数据包中,不需要简历连接 每个数据报的大小在限制在64K内 因无连接,是不可靠协议 不需要建立连接,速度快 TCP 建立连接.形成传输数据通道. 在连接中进行大量数据量 ...

  7. UDP和TCP 简单 区别

    1.双方都是一种网络传输协议2.TCP需要建立连接,而UDP不需要建立连接(无连接传输)3.是否建立真实连接的特性,造成了双方可靠性的差距. @1 TCP属于可靠的传输协议:因为传输前双方建立好了连接 ...

  8. 聊聊UDP、TCP和实现一个简单的JAVA UDP小Demo

    最近真的比较忙,很久就想写了,可是一直苦于写点什么,今天脑袋灵光一闪,觉得自己再UDP方面还有些不了解的地方,所以要给自己扫盲. 好了,咱们进入今天的主题,先列一下提纲: 1. UDP是什么,UDP适 ...

  9. TCP和UDP的优缺点及区别

    1.TCP是什么? TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议. TCP的优点: 可靠,稳定 TCP的可靠体 ...

随机推荐

  1. django tag

    官方文档:https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/#simple-tags stackoverflow de ...

  2. MyBK

  3. paxos(chubby) vs zab(Zookeeper)

    参考: Zookeeper的一致性协议:Zab Chubby&Zookeeper原理及在分布式环境中的应用 Paxos vs. Viewstamped Replication vs. Zab ...

  4. QL Server 2008 所有账号丢失sysadmin权限,sa账号亦没有开启,该如何解决??

    1. 用Run as a administrator打开命令提示符里输入NET STOP MSSQLSERVER, 即停止MSSQLSERVER运行. 2. 在命令提示符里输入 NET START M ...

  5. CDR VBA鼠标选择

    Dim x As Double, y As Double, Shift As Long, b As Boolean, doc As Document Dim sel1 As Shape, sel2 A ...

  6. oracleDBA-D3

    1.静态参数文件 PFILE:使用操作系统提供的VIM进行编辑,包含多个参数文件 参数文件名是:init.ora(如: D:\app\Administrator\admin\orcl\pfile) 其 ...

  7. pygame学习笔记

    pygame参考文档pdf版:pygame API html版 pygame API 石头剪子布的简单小游戏,待改进的地方,自适应大小.感兴趣的小伙伴可以依据get_surface()返回值(即当前窗 ...

  8. wap支付宝接口的问题

    今天在支付宝接口开发时,遇到的两个坑 第一个: https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.8nHr4i& ...

  9. 批量下载小说网站上的小说(python爬虫)

    随便说点什么 因为在学python,所有自然而然的就掉进了爬虫这个坑里,好吧,主要是因为我觉得爬虫比较酷,才入坑的. 想想看,你可以批量自动的采集互联网上海量的资料数据,是多么令人激动啊! 所以我就被 ...

  10. python的Template

    Template模块,可以用来制作web页面的模板,非常的方便. Template属于string中的一个类,所以要使用的话要在头部引入: from string import Template 模板 ...