Windows Socket1 1 程式設計

2021-04-13 06:27:34 字數 1291 閱讀 2057

一、簡介

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 接收 傳...