古詩詞大全網 - 成語大全 - TCP 和 UDP 在socket編程中的區別

TCP 和 UDP 在socket編程中的區別

壹、TCP與UDP的區別

基於連接與無連接

對系統資源的要求(TCP較多,UDP少)

UDP程序結構較簡單

流模式與數據報模式

TCP保證數據正確性,UDP可能丟包

TCP保證數據順序,UDP不保證

部分滿足以下幾點要求時,應該采用UDP 面向數據報方式 網絡數據大多為短消息

擁有大量Client

 對數據安全性無特殊要求

網絡負擔非常重,但對響應速度要求高

 具體編程時的區別 socket()的參數不同

UDP Server不需要調用listen和accept

 UDP收發數據用sendto/recvfrom函數

TCP:地址信息在connect/accept時確定

UDP:在sendto/recvfrom函數中每次均 需指定地址信息

UDP:shutdown函數無效

二、man----socket

 通過查看socket的man手冊可以看到socket函數的第壹個參數的值可以為下面這些值:

Name Purpose

 PF_UNIX, PF_LOCAL Local communication

 PF_INET IPv4 Internet protocols

 PF_INET6 IPv6 Internet protocols

 PF_IPX IPX - Novell protocols

 PF_NETLINK Kernel user interface device

 PF_X25 ITU-T X.25 / ISO-8208 protocol

 PF_AX25 Amateur radio AX.25 protocol

 PF_ATMPVC Access to raw ATM PVCs

 PF_APPLETALK Appletalk

 PF_PACKET Low level packet interface