程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Windows Sockets:流式套接字

Windows Sockets:流式套接字

編輯:關於C語言

本文描述流式套接字,它是兩種可用的 Windows Sockets 類型中的一種。(另一種類型是數據文報套接字 。)

流式套接字提供沒有記錄邊界的數據流:可以是雙向的字節流(應用程序是全雙工:可以通過套接字同時傳輸和接收)。可依賴流傳遞有序的、不重復的數據。(“有序”指數據包按發送順序送達。“不重復”指一個特定的數據包只能獲取一次。)這能確保收到流消息,而流非常適合處理大量數據。

網絡傳輸層可將數據拆分為或分組為若干個大小適當的數據包。 CSocket 類將為您處理打包和解包。

流基於顯式連接:套接字 A 請求與套接字 B 建立連接;套接字 B 接受或拒絕此連接請求。

打電話的情況與流非常相似:正常情況下,接聽方聽到您的話和您講話時的順序一樣,沒有重復和遺漏。流套接字適合文件傳輸協議 (FTP) 這類實現,此協議有利於傳輸任意大小的 ASCII 或二進制文件。

如果必須保證數據送達而且數據大小很大時,流式套接字優於數據文報套接字。有關流式套接字的更多信息,請參見 Windows Sockets 規范。該規范可在 Platform SDK 中獲得。

MFC 示例 CHATTER CHATSRVR 都使用流式套接字。這些示例可能已經設計為使用數據文報套接字向網絡上的所有接收套接字廣播。而目前的設計更好,這是因為:

  • 廣播模型受制於網絡“洪水”(或“風暴”)問題。
  • 後來采用的客戶端-服務器模型更有效。
  • 流式模型提供可靠的數據傳輸,數據文報模型則未提供。
  • 最終模型利用在 CArchive 類借給 CSocket 類的 Unicode 和 ANSI 套接字應用程序之間通信的能力。

注意: 如果使用 CSocket 類,則必須使用流。如果將套接字類型指定為 SOCK_DGRAM ,則 MFC 斷言失敗。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved