1. 程式人生 > >TCP和UDP區別小結以及步驟

TCP和UDP區別小結以及步驟

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程式設計的伺服器端一般步驟是:    1、建立一個socket,用函式socket();     SOCKET SocketListen =socket(AF_INET,SOCK_STREAM, IPPROTO_TCP);   2、設定socket屬性,用函式setsockopt(); * 可選    3、繫結IP地址、埠等資訊到socket上,用函式bind(); SOCKET_ERROR = bind(SocketListen,(const sockaddr*)&addr,sizeof(addr))   4、開啟監聽,用函式listen();                 SOCKET_ERROR == listen(SocketListen,2)   5、接收客戶端上來的連線,用函式accept();    SOCKET SocketWaiter = accept(SocketListen,

                                                  _Out_    struct sockaddr *addr

 _Inout_  int *addrlen);   6、收發資料,用函式send()和recv(),或者read()和write();    7、關閉網路連線; closesocket(SocketListen);closesocket(SocketWaiter);   8、關閉監聽;  SOCK_STREAM這種的特點是面向連線的,即每次收發資料之前必須通過connect建立連線,而SOCK_DGRAM這種是User Datagram Protocol協議的網路通訊,它是無連線的,不可靠的。 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、關閉網路連線;