一、客戶機/伺服器模式
在tcp/ip網路中兩個程序間的相互作用的主機模式是客戶機/伺服器模式(client/server model)。該模式的建立基於以下兩點:1、非對等作用;2、通訊完全是非同步的。客戶機/伺服器模式在操作過程中採取的是主動請示方式:
首先伺服器方要先啟動,並根據請示提供相應服務:(過程如下)
1、開啟一通訊通道並告知本地主機,它願意在某乙個公認位址上接收客戶請求。
2、等待客戶請求到達該埠。
3、接收到重複服務請求,處理該請求並傳送應答訊號。
4、返回第二步,等待另一客戶請求
5、關閉伺服器。
客戶方:
1、開啟一通訊通道,並連線到伺服器所在主機的特定埠。
2、向伺服器傳送服務請求報文,等待並接收應答;繼續提出請求……
3、請求結束後關閉通訊通道並終止。
二、基本套接字
為了更好說明套接字程式設計原理,給出幾個基本的套接字,在以後的篇幅中會給出更詳細的使用說明。
1、建立套接字——socket()
功能:使用前建立乙個新的套接字
格式:socket pascal far socket(int af,int type,int procotol);
引數:af: 通訊發生的區域
type: 要建立的套接字型別
procotol: 使用的特定協議
2、指定本地位址——bind()
格式:int pascal far bind(socket s,const struct sockaddr far * name,int namelen);
引數:s: 是由socket()呼叫返回的並且未作連線的套接字描述符(套接字型大小)。
其它:沒有錯誤,bind()返回0,否則socket_error
struct sockaddr_in
3、建立套接字連線——connect()和accept()
功能:共同完成連線工作
格式:int pascal far connect(socket s,const struct sockaddr far * name,int namelen);
socket pascal far accept(socket s,struct sockaddr far * name,int far * addrlen);
引數:同上
4、監聽連線——listen()
功能:用於面向連線伺服器,表明它願意接收連線。
格式:int pascal far listen(socket s, int backlog);
5、資料傳輸——send()與recv()
功能:資料的傳送與接收
格式:int pascal far send(socket s,const char far * buf,int len,int flags);
int pascal far recv(socket s,const char far * buf,int len,int flags);
引數:buf:指向存有傳輸資料的緩衝區的指標。
6、多路復用——select()
功能:用來檢測乙個或多個套接字狀態。
格式:int pascal far select(int nfds,fd_set far * readfds,fd_set far * writefds,
fd_set far * exceptfds,const struct timeval far * timeout);
引數:readfds:指向要做讀檢測的指標
writefds:指向要做寫檢測的指標
exceptfds:指向要檢測是否出錯的指標
timeout:最大等待時間
7、關閉套接字——closesocket()
功能:關閉套接字s
格式:bool pascal far closesocket(socket s);
三、典型過程圖
2.1 面向連線的套接字的系統呼叫時序圖
2.2 無連線協議的套接字呼叫時序圖
2.3 面向連線的應用程式流程圖
套接字程式設計原理
注 本文內容為引用,可能部分內容表達時不夠準確,請參閱osi模型 文章有助於你正確理解其實際要表達意思!一 客戶機 伺服器模式 在tcp ip網路中兩個程序間的相互作用的主機模式是客戶機 伺服器模式 client server model 該模式的建立基於以下兩點 1 非對等作用 2 通訊完全是非同...
Winsocket程式設計之套接字原理
在tcp ip網路中兩個程序間的相互作用的主機模式是客戶機 伺服器模式.一 客戶機 伺服器模式在tcp ip網路中兩個程序間的相互作用的主機模式是客戶機 伺服器模式 client server model 該模式的建立基於以下兩點 1 非對等作用 2 通訊完全是非同步的。客戶機 伺服器模式在操作過程...
Winsocket程式設計之套接字原理
一 客戶機 伺服器模式 在tcp ip網路中兩個程序間的相互作用的主機模式是客戶機 伺服器模式 client server model 該模式的建立基於以下兩點 1 非對等作用 2 通訊完全是非同步的。客戶機 伺服器模式在操作過程中採取的是主動請示方式 首先伺服器方要先啟動,並根據請示提供相應服務 ...