Winsocket程式設計之套接字原理

2021-04-02 11:15:19 字數 2086 閱讀 4171

一、客戶機/伺服器模式

在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 面向連線的應用程式流程圖

Winsocket程式設計之套接字原理

在tcp ip網路中兩個程序間的相互作用的主機模式是客戶機 伺服器模式.一 客戶機 伺服器模式在tcp ip網路中兩個程序間的相互作用的主機模式是客戶機 伺服器模式 client server model 該模式的建立基於以下兩點 1 非對等作用 2 通訊完全是非同步的。客戶機 伺服器模式在操作過程...

Winsocket程式設計之套接字原理

一 客戶機 伺服器模式 在tcp ip網路中兩個程序間的相互作用的主機模式是客戶機 伺服器模式 client server model 該模式的建立基於以下兩點 1 非對等作用 2 通訊完全是非同步的。客戶機 伺服器模式在操作過程中採取的是主動請示方式 首先伺服器方要先啟動,並根據請示提供相應服務 ...

套接字程式設計之localsocket

unix domain socket ipc 使用unix domain socket的過程和網路socket十分相似,也要先呼叫socket 建立乙個socket檔案描述符,address family指定為af unix,type可以選擇sock dgram或sock stream,protoc...