Windows 通訊端: 背景
本文說明 Windows Sockets 的本質與目的。也文件:
定義元件一詞「通訊端」。
描述通訊端控制代碼資料型別。
描述通訊端的用途。
Windows Sockets 規格定義 Microsoft Windows 的二進位相容網路程式設計介面。Windows Sockets 根據柏標記萊軟體配置 (BSD, 4.3 版) 的 UNIX 通訊端實作 Berkeley 的美國加州大學。這個規格中兩個 BSD 通訊端式常式和擴充特定視窗。使用 Windows Sockets 允許您的應用程式會依照 Windows Sockets API 的所有網路通訊。就 Win32 而言, Windows Sockets 提供執行緒安全。
許多網路軟體廠商支援 Windows Sockets 在網路通訊協定下包括傳輸控制通訊協定/網際網路通訊協定 (TCP/IP),複製 Web System (XNS), DEC 電腦公司的 DECnet 網路通訊協定、Novell Corporation 的網際網路封包交換/序列包裝交換 (IPX/SPX 通訊協定) 等。雖然存在 Windows Sockets 規格定義 TCP/IP 通訊端抽象,所有網路通訊協定可能符合 Windows Sockets 藉由提供其動態連結程式庫 (DLL) 的 (DLL) 的版本實作 Windows Sockets。商用應用軟體的範例會使用 Windows Sockets 由 X Windows Server、終端模擬器和電子郵件系統。
注意事項 |
---|
Windows Sockets 的目的是要擷取基礎網路,讓您不需要為平台學習的該網路,因此您的應用程式在支援通訊端的所有網路上執行。因此,本文件不探討網路通訊協定詳細資料。 |
與 Windows Sockets API 的 MFC 程式庫支援透過提供兩個類別。其中一個類別,則為 CSocket,提供高階抽象簡化您的網路通訊程序。
Windows Sockets 規格, Windows Sockets:網路計算具有開啟介面在 Microsoft Windows 中,出現在版本 1.1 中,已經為開啟網路標準由個人和公司的大量 TCP/IP 社群和是免費可供使用。使用網際網路通訊協定組,通訊端程式設計模型目前支援的「通訊網域」。這個規格可用於 Windows SDK。
提示 |
---|
由於通訊端使用網際網路通訊協定組,它們是支援「資訊快公路的網際網路通訊協定的應用程式的進階路徑」。 |
通訊端的定義
通訊端是通訊端點— Windows Sockets 應用程式傳送或接收資料包在網路上的物件。通訊端有一個型別和與執行中的處理序,因此,它可能有名稱。目前,一般通訊端交換資料在相同「通訊網域的其他通訊端,」使用網際網路通訊協定組件集。
兩種通訊端是雙向的;它們是在兩個方向可以同時傳送資料流 (全雙工)。
兩個通訊端類型:
資料流通訊端
資料流通訊端提供未記錄界限的資料流:位元組資料流。保證正確交付和循序資料流和 unduplicated。
資料包通訊端
資料包通訊端支援不保證提供的記錄導向的資料流並不進行排序所傳送或 unduplicated。
「、」表示封包按傳送的順序傳遞。「Unduplicated 是指您一次只能取得特定封包。
注意事項 |
---|
在某些 Web 通訊協定下,例如 XNS,資料流可以是做為記錄資料流上的資料錄,而不是位元組資料流。在較常見的 TCP/IP 通訊協定下,不過,資料流是位元組資料流。Windows Sockets 提供抽象層級基礎通訊協定無關。 |
如需,並使用型別通訊端在這些類型的資訊的情況,請參閱 Windows Sockets:資料流通訊端 和 Windows Sockets:資料包通訊端。
通訊端資料型別
每個 MFC 通訊端作業系統檔案控制代碼 Windows Sockets 物件。這個控制代碼資料型別是 SOCKET。SOCKET 控制代碼是類似視窗的 HWND 。MFC 通訊端類別中封裝的控制代碼的作業。
SOCKET 資料型別在 Windows SDK中有詳細說明。請參閱通訊端資料型別和錯誤值」在 Windows Sockets 下。
通訊端的用途
通訊端是非常有用的在三個訊息內容:
主從模型。
要限制的案例,例如訊息應用程式。
進行遠端程序呼叫 (RPC) 會接收應用程式解譯訊息做為函式呼叫。
提示 |
---|
理想的情況是使用 MFC 通訊端是撰寫通訊兩端:使用在兩端的 MFC。如需本主題的詳細資訊,包括如何處理案例中,當您使用非 MFC 應用程式時進行通訊,請參閱 Windows Sockets:位元組順序。 |
如需詳細資訊,請參閱 Windows Sockets 規格: ntohs, ntohl, htons, htonl。此外,請參閱下列主題: