• Java 网络编程 TCP vs UDP


    TCP (Transmission  Control  Protocol   传输控制协议):面向连接的,不可靠的,数据流服务。
    UDP (User  Datagram  Protocl   用户数据报协议):面向无连接的,不可靠的,数据报服务。
    TCP传输和UDP不一样,TCP传输是流式的,必须先建立连接,然后数据流沿已连接的线路(虚电路)传输。因此TCP的数据流不会像UDP数据报一样,每个数据报都要包含目标地址和端口,因为每个数据报要单独路由。TCP传输则只需要在建立连接时指定目标地址和端口就可以了。
    如果我不是刚学过砖头似的《计算机网络》(第四版 Andrew S.Tanenbaum著 潘爱民译 清华大学出版社)以上说的我自己都看不懂。上面只是简要提一下,如果要学习网络,这本书还是值得推荐的。英文版名字是Computer Networks。
    形象的讲,TCP就像打电话,UDP就像发电报。
    就像发电报,宏观上来看UDP是不分客户端和服务端的。通信双方是平等的。
    微观上来讲只相对一个报文,发送端是客户端,监听端是服务端。发送端把数据报发给路由器就像把电报发给了邮局,后面的事情就是发送者无法控制,也无从知晓的了。所以说是不可靠的,可能会出现报文丢失而无从知晓。就像每张电报都要有收件人一样,每个数据报都要有目的地址和端口。
    就像打电话,TCP每次连接都是分客户端和服务端的。连接的发起者(相当与拨号打电话的人)是客户端,监听者(相当于在电话边等着接电话的人)是服务端。发起者指定要连接的服务器地址和端口(相当于拨号),监听者通过和发起者三次握手建立连接(相当于听到电话响去接电话)。建立连接后双方可以互相发送和接受数据(打电话)。
    Java中TCP编程主要通过ServerSocket/Socket 类    实现的,其中Socket.getInputStream()/getOutputStream() 是获得输入/输出 数据流的。ServerSocket.accept()是用来监听建立连接的。


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/nyzhl/archive/2007/07/24/1705039.aspx

  • 相关阅读:
    java实现操作系统磁盘寻道先来先服务算法
    专业素养:发布文件,别忘了给出校验信息
    vue系列教程-08vue的动画和过渡效果
    vue系列教程-07vue动态绑定样式
    vue系列教程-06vue的事件处理
    vue系列教程-05vue常用指令
    vue系列教程-04vue数据处理和页面渲染
    vue系列教程-03vuejs的结构和生命周期
    vue系列教程-01第一个vue程序
    vue系列教程-02什么是mvvm和spa
  • 原文地址:https://www.cnblogs.com/sunwei2012/p/1676477.html
Copyright © 2020-2023  润新知