socket wsasocket(afint af,
int type,
int protocol,
lpwsaprotocol_info lpprotocolinfo,
group g,
dword dwflags
);
[in] 指明位址協議家族。一般都是使用ip協議。 一般的引數都是 af_inet
type
[in] 指明該通訊是什麼樣的資料格式。tcp 還是udp 等。 (sock_stream 引數指 資料流格式 tcp格式,
sock_dgram 是udp 資料報格式。)
) protocol
[in]
使用的特定協議,如果呼叫者不願指定協議則定為0。 一般指定為:ipproto_tcp 表示使用tcp協議。
lpprotocolinfo
[in] 指定下層服務的提供者。 g
[in] 保留字。
dwflags
int wsasend(
socket s,
lpwsabuf lpbuffers,
dword dwbuffercount,
lpdword lpnumberofbytessent,
dword dwflags,);s
[in]欲傳送訊息的套接字
lpbuffers
[in] 傳送的緩衝區
dwbuffercount
[in] 傳送的緩衝區的大小
lpnumberofbytessent
[out]返回傳送成功的位元組個數。
dwflags
[in]標誌
lpcompletionroutine
[in] 指定乙個完成例程。
2、使用
lpcompletionroutine 指向的完成例程。完成例程是乙個自定義的函式,io操作完成後,就去呼叫它。這種方法使用的很少,將
lpcompletionroutine 設定為null即可。
前四個引數,由系統內部呼叫,使用時不用操作這四個引數。socket s,hevent是乙個事件物件的控制代碼,可以關聯乙個事件物件,當io完成後,會通知該事件物件。
, lpdword lpcbtransfer
, bool fwait
, lpdword lpdwflags
獲取重疊操作的結果。
s[in] 欲獲取的io操作相關的套接字
lpcbtransfer
[out] 獲取實際傳輸的位元組數。
fwait
[in] 標誌是否等待還未完成的io操作,如果是true的話,會等到io操作完成之後,函式才返回。
lpdwflags
[out]獲取更詳細的完成的狀態
高效通訊模型之 非同步通訊模型
非同步模型 非同步和同步 同步,就是在發出乙個功能呼叫時,在沒有得到結果前,呼叫不返回 非同步,當乙個非同步過程呼叫發出後,呼叫者不能立即得到呼叫結果,而是通過狀態,通知和 來通知呼叫者。通過檢查狀態來判斷非同步呼叫結果,效率會很低,因為需要週期性檢查狀態 函式和通知差不多 同步呼叫與阻塞呼叫 對於...
C S通訊模型與B S通訊模型介紹
1 客戶端與伺服器之間的通訊模型 基於socket連線的客戶端與伺服器之間的通訊模型圖如上圖所示,整個通訊過程如下所示 1 伺服器端首先啟動監聽程式,對指定的埠進行監聽,等待接收客戶端的連線請求 2 客戶端程式啟動,請求連線伺服器的指定埠 3 伺服器收到客戶端的連線請求後與客戶端建立套接字 sock...
C S通訊模型與B S通訊模型介紹
1 客戶端與伺服器之間的通訊模型 基於socket連線的客戶端與伺服器之間的通訊模型圖如上圖所示,整個通訊過程如下所示 1 伺服器端首先啟動監聽程式,對指定的埠進行監聽,等待接收客戶端的連線請求 2 客戶端程式啟動,請求連線伺服器的指定埠 3 伺服器收到客戶端的連線請求後與客戶端建立套接字 sock...