参考:http://blog.csdn.net/li_ning_/article/details/52117463

TCP与UDP区别总结:

1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
  UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

TCP补充:

TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。

UDP补充:

UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。UDP有点类似于用户说什么听什么的机制,但是需要用户充分考虑好上层协议类型并制作相应的应用程序。

TCP:

TCP编程的服务器端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt(); * 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind(); 
  4、开启监听,用函数listen(); 
  5、接收客户端上来的连接,用函数accept(); 
  6、收发数据,用函数send()和recv(),或者read()和write(); 
  7、关闭网络连接; 
  8、关闭监听;

TCP编程的客户端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选 
  4、设置要连接的对方的IP地址和端口等属性; 
  5、连接服务器,用函数connect(); 
  6、收发数据,用函数send()和recv(),或者read()和write(); 
  7、关闭网络连接;

UDP:

与之对应的UDP编程步骤要简单许多,分别如下: 
  UDP编程的服务器端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind(); 
  4、循环接收数据,用函数recvfrom(); 
  5、关闭网络连接;

UDP编程的客户端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选 
  4、设置对方的IP地址和端口等属性; 
  5、发送数据,用函数sendto(); 
  6、关闭网络连接;

最新文章

  1. TCP学习之三:客户端、服务端同步传输字符串
  2. Java数据类型和变量
  3. Deep Learning 1_深度学习UFLDL教程:Sparse Autoencoder练习(斯坦福大学深度学习教程)
  4. SQL SERVER 2014 安装图解(含 SQL SERVER 2014 安装程序共享)
  5. SQL语句 - 嵌套查询
  6. [转]动态调用webservice时 ServiceDescriptionImporter类在vs2010无法引用的解决方法
  7. 在XML里的XSD和DTD以及standalone的使用3----具体使用详解
  8. Flash 无法输入中文的修正方法
  9. 图片样式 scaleType 属性
  10. hdu1030
  11. Java 多线程之线程池的使用
  12. Oracle 11g设置IP访问限制
  13. android dialog加载中动画效果
  14. Python Web学习笔记之图解TCP/IP协议和浅析算法
  15. ios 真机测试与发布详细流程,基于最新的开发者网站,ios7,xcode5(有截图的哦)[[[第一部分真机测试]]]
  16. chrome 浏览器 console 加入 jquery 测试调试 一介布衣
  17. ural 1297 后缀数组 最长回文子串
  18. 转载 HTTPS 之fiddler抓包、jmeter请求
  19. [Clr via C#读书笔记]Cp1CLR执行模型
  20. Java课程设计——坦克大战

热门文章

  1. 每日技术总结:setInterval,setTimeout,文本溢出,小程序,wepy
  2. 【习题 5-2 UVA-1594】Ducci Sequence
  3. JRebel热部署神器的配置(Eclipse,非教程,就自己看看)
  4. Java反射学习总结四(动态代理使用实例和内部原理解析)
  5. js进阶 12-5 jquery中表单事件如何使用
  6. DOCKER学习心得
  7. google analytics是什么(免费的网站流量分析服务:比如分析有多少个人来了你的网站,告诉你怎么样才能在网站上面实现最大收益。)
  8. 【MySQL】15个有用的MySQL/MariaDB性能调整和优化技巧
  9. Coverage报告生成
  10. 创建ListView的基本步骤 分类: H1_ANDROID 2013-10-31 23:25 1276人阅读 评论(0) 收藏