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. Android M(6.0) 权限相关

    原文链接:http://jijiaxin89.com/2015/08/30/Android-s-Runtime-Permission/ Android M 新的运行时权限开发者需要知道的一切   an ...

  2. JSON 的标准:双引号而非单引号!

    刚刚测试发现一段很简单的.看似正确的代码却是错误的: <?php $json_str = "{'name':'Eric', 'age':23}"; var_dump(json ...

  3. 基于TXT文本的简单图书管理系统

    1 ////////////////////////////////////////////////////////////////////////////////////// //SqList.h ...

  4. NodeJS+Express下构建后端MVC文件结构

    关于MVC的结构大体上有两种方式,其一按照层级进行文件夹分类,其二是按照业务进行文件夹分类.关于这个demo相关的业务简单,所以暂采用第一种的方式,当然实际当中很恨复杂的项目可以采用两种方式相结合的方 ...

  5. freemarker 中文乱码

    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker ...

  6. wpf 悬浮窗口的实现

    又到了写点东西的时候,因为有了新的收获,所以用随笔来记录下自己的成长.话不多说,正入主题. 最近又遇到一个新的需求,有一组控件,需要悬浮显示在面板的边缘上,刚开始的时候,是不显示的,点击后显示,然后再 ...

  7. Mac OS X系统安装盘制作

    本文来记录一下制作苹果系统安装盘的步骤: 1. 准备一个空白的U盘或移动硬盘和去App Store下载好最新版本的系统,现在最新的是:macOS Sierra,下载后会默认打开安装进程,退出不管即可, ...

  8. Java 8中一些常用的全新的函数式接口

    这一篇属于菜鸟级博客,只是介绍了一些在Java 8中新出现的一些很有用的接口,通过一些简单的例子加以说明,没有深入地阐述. 函数式接口 什么是函数式接口? 函数式接口,@FunctionalInter ...

  9. log4net配置

    1.configuration配置 <configSections> <section name="log4net" type="log4net.Con ...

  10. NoSql数据库初探-mongoDB读操作

    MongoDB以文档的形式来存储数据,此结果类似于JSON键值对.文档类似于编程语言中将键和值关联起来的结构(比如:字典.Map.哈希表.关联数组).MongoDB文档是以BOSN文档的形式存在的.B ...