一個完整的網間通信進程需要由兩個進程組成,並且只能用同一種高層協議。也就是說,不可能通信的一段用TCP,而另一端用UDP。一個完整的網絡信息需要一個五元組來標識:協議、本地地址、本地端口號、遠端地址、遠端端口號。
在客戶端/服務器模式中我們將請求服務的一方成為客戶,將提供某種服務的一方稱為服務器(Server)
一個服務程序通常在一個眾所周知的地址監聽對服務的請求,也就是說服務進程一直處於休眠狀態,直到一個客戶對這個服務的地址提出了連接請求。在這個時刻,服務程序被“驚醒”,並且為客戶提供服務----對客戶的請求做出適當的反應。雖然基於鏈接的服務是設計客戶機/服務器應用程序時的標准,但有些服務也是可以通過無連接的接口提供的。
客戶及/服務器的請求/響應過程示意圖如下所示:
========服務端
#include <winsock2.h><stdio.h> comment(lib,"ws2_32") main( argc, * WORD wVersionRequested = MAKEWORD(,(WSAStartup(wVersionRequested,&wsaData) != ,&wsaData.szDescription[,&wsaData.szSystemStatus[ =(s == == htons(= inet_addr((bind(s,(sockaddr*)&Sadd,(Sadd)) == ( listen( s, )== caddLen= = accept( s,( sockaddr*)& Cadd,& ( c== ,& ( xx== || xx==
運行結果: