共用方式為


Windows Sockets:背景

本文說明 Windows Sockets 的性質和用途。 本文也:

Windows Sockets 規格會定義適用于 Microsoft Windows 的二進位相容網路程式設計介面。 Windows Socket 是以加州大學伯克利分校軟體發佈 (BSD, 4.3 版) 中的 UNIX 通訊端實作為基礎。 此規格包含 BSD 樣式的通訊端常式和 Windows 專屬的延伸模組。 使用 Windows Sockets 可讓應用程式跨任何符合 Windows Sockets API 的網路進行通訊。 在 Win32 上,Windows 通訊端提供執行緒安全性。

許多網路軟體廠商支援網路通訊協定下的 Windows 通訊端,包括傳輸控制通訊協定/網際網路通訊協定(TCP/IP)、Xerox 網路系統(XNS)、數位設備公司的 DECNet 通訊協定、Novell Corporation 的網際網路封包交換/循序包裝交換(IPX/SPX)等。 雖然目前的 Windows Sockets 規格會定義 TCP/IP 的通訊端抽象概念,但任何網路通訊協定都可以藉由提供實作 Windows 通訊端的動態連結程式庫 (DLL) 版本來符合 Windows 通訊端。 使用 Windows Socket 撰寫的商業應用程式範例包括 X Windows 伺服器、終端機模擬器和電子郵件系統。

注意

Windows Sockets 的目的是將基礎網路抽象化,因此您不必瞭解該網路,因此您的應用程式可以在支援通訊端的任何網路上執行。 因此,本檔不會討論網路通訊協定的詳細資料。

Microsoft Foundation Class Library (MFC) 藉由提供兩個類別,支援使用 Windows Sockets API 進行程式設計。 其中一個類別 CSocket 提供高階抽象概念,以簡化網路通訊程式設計。

Windows Sockets 規格 Windows Sockets:Microsoft Windows 下網路運算的開放介面,現在為 1.1 版,已由 TCP/IP 社群中的大量個人和公司開發為開放式網路標準,可供免費使用。 通訊端程式設計模型目前使用網際網路通訊協定套件支援一個「通訊網域」。 此規格可在 Windows SDK 中使用。

提示

因為通訊端使用網際網路通訊協定套件,所以它們是支援「資訊公路」上網際網路通訊的應用程式慣用路由。

通訊端的定義

通訊端是通訊端點, 物件,Windows Sockets 應用程式會透過該物件透過該物件透過網路傳送或接收資料封包。 通訊端具有類型,且與執行中的進程相關聯,而且可能有名稱。 目前,通訊端通常只會與相同「通訊網域」中的其他通訊端交換資料,這會使用網際網路通訊協定套件。

這兩種通訊端都是雙向的;它們是可以同時以兩個方向進行通訊的資料流程(全雙工)。

有兩種通訊端類型可供使用:

  • 資料流通訊端

    資料流程通訊端會針對沒有記錄界限的資料流程提供:位元組資料流程。 資料流程保證會傳遞,並正確地排序和取消刪除。

  • 資料包通訊端

    Datagram 通訊端支援不保證會傳遞的記錄導向資料流程,而且可能不會依傳送或未刪除的順序排序。

「Sequenced」 表示封包會依傳送的順序傳遞。 「Unduplicated」 表示您只會取得特定封包一次。

注意

在某些網路通訊協定下,例如 XNS,資料流程可以是記錄導向,做為記錄資料流程,而不是位元組資料流程。 不過,在較常見的 TCP/IP 通訊協定下,資料流程是位元組資料流程。 Windows Sockets 提供與基礎通訊協定無關的抽象層級。

如需有關這些類型以及哪種通訊端類型的相關資訊,請參閱 Windows 通訊端:串流通訊端 Windows 通訊端:Datagram Sockets

SOCKET 資料類型

每個 MFC 通訊端物件都會封裝 Windows Sockets 物件的控制碼。 這個控制碼的資料類型為 SOCKET SOCKET 控制碼類似于 HWND 視窗的 。 MFC 通訊端類別提供封裝控制碼上的作業。

WINDOWS SDK 會詳細說明 SOCKET 資料類型。 請參閱 Windows Sockets 底下的「通訊端資料類型和錯誤值」。

Sockets 的用法

通訊端在至少三個通訊內容中非常有用:

  • 用戶端/伺服器模型。

  • 點對點案例,例如傳訊應用程式。

  • 藉由讓接收應用程式將訊息解譯為函式呼叫,進行遠端程序呼叫 。。

提示

使用 MFC 通訊端的理想案例是當您撰寫通訊的兩端時:在兩端使用 MFC。 如需本主題的詳細資訊,包括如何在您與非 MFC 應用程式通訊時管理案例,請參閱 Windows 通訊端:位元組排序

如需詳細資訊,請參閱 Windows 通訊端規格: ntohs ntohl htons htonl 。 另請參閱下列主題:

另請參閱

MFC 中的 Windows Sockets