“Socket C”是一個術語,有時用來指用C編程語言編寫Socket代碼的過程,有時用來指保存某些Socket函數實現的實際庫文件。實際的Socket C庫文件包含不同函數和宏的實現,這些函數和宏提供了語言庫提供的基本套接字功能,盡管s...
“Socket C”是一個術語,有時用來指用C編程語言編寫Socket代碼的過程,有時用來指保存某些Socket函數實現的實際庫文件。實際的Socket C庫文件包含不同函數和宏的實現,這些函數和宏提供了語言庫提供的基本套接字功能,盡管socket C文件依賴于操作系統,并且可能無法在某些系統上實現。編寫socket C代碼需要創建一個具有標準輸入和輸出協議(稱為socket)的接口,并使用它來發送或接收信息,通常通過網絡或通過一個硬件。C語言的目的是便于移植,但套接字編程依賴于一些低級的系統特定功能,因此有時用C編寫使用套接字但又能保持跨系統可移植性的程序是困難的socket C支持的套接字類型。第一種是數據報,第二種是流,第三種是原始訪問。數據報是一種以小包形式發送信息的套接字類型,稱為數據包。每個數據包都是從一個源發送的,其中包含它在網絡上尋找的目標套接字的信息。雖然數據報可以是通過套接字進行通信的有效方法,通常用于發送電子郵件,它也是有損的,因為發送的數據包不能保證到達目的套接字。流套接字與另一個套接字建立連接,信息在套接字之間直接傳遞。當在socket C編程中使用時,這種類型的套接字確保發送的所有數據都在另一端接收然而,一個復雜的情況是,套接字有時可以使用阻塞,這意味著套接字將停止進程的執行,直到接收到信息或關閉套接字為止,雖然在大多數情況下,使用線程或分叉進程可以解決這個問題。原始套接字訪問是作為一種在幾乎硬件級別上與承載套接字的任何設備進行實際連接的一種方式。套接字通常以各種形式用于Internet通信。允許聯網的硬件和驅動程序由于操作系統的差異很大,因此很難找到支持所有可能組合的套接字C庫文件。因此,套接字C文件本身以及套接字頭文件通常包含一長串條件編譯指令,因此它將在不同的系統上進行不同的編譯
-
發表于 2020-08-06 14:41
- 閱讀 ( 554 )
- 分類:電腦網絡