什麼是溫索克?所有你必須知道的

Last Updated: 2020-11-23
4.5
(16)
Summary: Winsock 是支持 Windows 和 TCP/IP 之間通信的編程接口。繼續閱讀這篇文章,了解您需要了解的有關 Winsock 的所有信息。

定義

Winsock 是 Windows Sockets API (WSA) 的縮寫,是一個支持程序和技術規範,它決定了 Windows 網絡軟件如何訪問計算中的網絡服務,尤其是 TCP/IP。它處理 Windows 操作系統中 Internet 應用程序的輸入和輸出請求。

它改編自 Windows,用於 Berkeley Unix 套接字接口。這就是為什麼它被稱為 Winsock。套接字是連接兩個程序進程並通過網絡或在同一台計算機內交換數據的特定約定。

背景

Windows Socket 項目起源於 1991 年 10 月 10 日在聖何塞聖何塞舉行的 Interop '91 會議上的 Birds Of A Feather 會議。它基於由 NetManage 創建的套接字規範。並且在這次會議上將這些規範公之於眾。

本規範的第一版由 Martin Hall、Microdyne 的 Mark Towfiq、Sun Microsystems 的 Geoff Arnold 以及 Microsoft 的 Henry Sanders 和 J Allard 在許多其他人的幫助下創建。

有一些關於如何最好地解決知識產權、版權和潛在的反壟斷問題的討論,以及考慮通過 IETF 工作或成立一個非盈利基金會。最後,決定規範將只包含五位作者作為個人版權。

很長一段時間,所有參與的開發人員都拒絕將名稱縮短為簡單的 Winsock。因為,在用戶中,DLL 庫文件(winsock.dll)和 API 之間存在很多混淆,而 DLL 庫文件只向上面的應用程序公開了通用的 WSA 接口。用戶通常認為,只有確保系統上存在 DLL 文件,才能提供完整的 TCP/IP 協議支持。

技術

Winsock 規範定義了兩個接口:API 和 SPI。應用程序開發人員使用前者,後者為網絡軟件開發人員提供了一種向系統添加新協議模塊的方法。每個接口代表一個契約。

API 可確保合規應用程序正常運行,正如任何網絡軟件供應商的一致協議所實施的那樣。 SPI 合同提供了一個可以添加到 Windows 的協議兼容模塊,因此被 API 兼容的應用程序使用。

Windows 套接字的代碼和設計基於 BSD 套接字,但提供了允許 API 符合通用 Windows 編程模型的附加功能。

Windows Socket API 幾乎涵蓋了 BSD 套接字 API 的所有特性。然而,一些不可避免的障礙主要源於 Windows 和 Unix 之間的根本差異。

但是,Windows 套接字被設計為相對容易讓開發人員將基於套接字的應用程序從 Unix 移植到 Windows。創建僅適用於新編寫的 Windows 程序的 API 是不夠的。因此,Windows 套接字包含許多設計為可移植的元素。

這在 Windows 中是不可能的,因此 Windows 套接字引入了一個特定的函數 WSAGetLastError() 來檢索錯誤消息。儘管這些機制很有幫助,但應用程序移植仍然過於復雜。

許多原始的 TCP/IP 應用程序是使用 Unix 特定的系統功能實現的,這些功能在 Windows 中復制是有問題的。

移植讓位於在相對較短的時間內開發專用的 Windows 應用程序。

實現

微軟實施

  • Microsoft 沒有提供 Winsock 1.0 的實現。
  • Winsock 1.1 版在名為 Wolverine for Windows for Workgroups 的附加包中可用。
  • Winsock 2.1 版在 Windows 95 的附加包中可用。
  • 最新版本的 Winsock 2.x 作為 Service Pack 的一部分或與新的 Windows 版本一起提供。
  • Winsock 2 可以通過稱為分層服務提供程序 (LSP) 的機制進行擴展。

其他實現

  • 其他提供 Winsock 兼容 TCP/IP 和 UDP/IP 堆棧的供應商包括 3Com、DEC、Beame 和 Whiteside、Distinctive、Frontier、IBM、FTP Software、NetManage、Novell、Sun Microsystems、Microdyne 和 Trumpet Software International。
  • Peter Tattam 的 Trumpet Winsock 是為數不多的安裝在 Windows 3.0 下的 Winsock 1.0 實現之一,該版本沒有對 Winsock 的內置支持。
  • Wine 項目涉及在 BSD 套接字 API 上重新實現的 Winsock 源代碼和二進制兼容性。

Conclusion

以上介紹了Winsock的基本信息,包括它的定義、背景、技術和實現。

How useful was this post?

Click on a star to rate it!

Average rating 4.5 / 5. Vote count: 16

No votes so far! Be the first to rate this post.

Previous Article

如何在 Windows 中顯示、隱藏和分配驅動器號? 簡介: Winsock 是一個支持Windows 和TCP/IP 之間通信的編程接口。繼續閱讀這篇文章以了解所有...

Next Article

修正:沒有足夠的內存或磁盤空間來運行 Word 簡介: Winsock 是一個支持Windows 和TCP/IP 之間通信的編程接口。繼續閱讀這篇文章以了解所有...

About Bitwar Data Recovery

3 Steps to get back 500+ kinds of deleted, formatted or lost documents, photos, videos, audios, archive files from various data loss scenarios.

閱讀更多

Hot Articles

    Related Articles