一、簡介
windows sockets 是從 berkeley sockets 擴充套件而來的,其在繼承 berkeley sockets 的基礎上,又進行了新的擴充。這些擴充主要是提供了一些非同步函式,並增加了符合windows訊息驅動特性的網路事件非同步選擇機制。
windows sockets由兩部分組成:開發元件和執行元件。
開發元件:windows sockets 實現文件、應用程式介面(api)引入庫和一些標頭檔案。
二、主要擴充說明
1、非同步選擇機制:
windows sockets 的非同步選擇函式提供了訊息機制的網路事件選擇,當使用它登記網路事件發生時,應用程式相應視窗函式將收到乙個訊息,訊息中指示了發生的網路事件,以及與事件相關的一些資訊。
windows sockets 提供了乙個非同步選擇函式 wsaasyncselect(),用它來註冊應用程式感興趣的網路事件,當這些事件發生時,應用程式相應的視窗函式將收到乙個訊息。
函式結構如下:
int wsaasyncselect(socket s,hwnd hwnd,unsigned int wmsg,long levent);
引數說明:
hwnd:視窗控制代碼
wmsg:需要傳送的訊息
levent:事件(以下為事件的內容)
值:含義:
fd_read
期望在套接字上收到資料(即讀準備好)時接到通知
fd_write
期望在套接字上可傳送資料(即寫準備好)時接到通知
fd_oob
期望在套接字上有帶外資料到達時接到通知
fd_accept
期望在套接字上有外來連線時接到通知
fd_connect
期望在套接字連線建立完成時接到通知
fd_close
期望在套接字關閉時接到通知
例如:我們要在套接字讀準備好或寫準備好時接到通知,語句如下:
rc=wsaasyncselect(s,hwnd,wmsg,fd_read|fd_write);
如果我們需要登出對套接字網路事件的訊息傳送,只要將 levent 設定為0
4、出錯處理
windows sockets 為了和以後多執行緒環境(windows/unix)相容,它提供了兩個出錯處理函式來獲取和設定當前執行緒的最近錯誤號。(wsagetlasteror()和wsasetlasterror())
5、啟動與終止
使用函式 wsastartup() 和 wsacleanup() 啟動和終止套接字。
Windows Socket1 1 程式設計
文章導讀 windows sockets 是從 berkeley sockets 擴充套件而來的,其在繼承 berkeley sockets 的基礎上,又進行了新的擴充 一 簡介 windows sockets 是從 berkeley sockets 擴充套件而來的,其在繼承 berkeley so...
Windows Socket 程式設計
伺服器端 客戶端 在 http fayaa.com code 處理的高亮顯示效果 c 語言 臨時自用 include include void main if lobyte wsadata wversion 1 hibyte wsadata wversion 1 socket socksrv soc...
Windows Socket程式設計
windows下socket程式設計主要包括以下幾部分 服務端1 初始化windows socket庫。2 建立socket。3 繫結socket。4 監聽。5 accept。6 接收 傳送資料。客戶端1 初始化windows socket庫。2 建立socket。3 連線socket。4 接收 傳...