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、關閉網路連線;