zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    先建制度,后建系统
    历史即哲学
    要针对对方关心的问题开展有效的交流
    技术人员安身立命
    人工智能与信息爆炸
    50年100年后我们的计算结构(架构)是什么样的?
    关于“怎么看”的哲学思考
    c语言之秒数算法
    httpd centos7
    SSH隧道技术----端口转发,socket代理
  • 原文地址:https://www.cnblogs.com/sunwei2012/p/1676477.html
Copyright © 2011-2022 走看看