Co je Socket C?
"Socket C" je termín, který se někdy používá k označení procesu psaní kódu soketu v programovacím jazyce C, a někdy se používá k označení skutečného souboru knihovny, který obsahuje implementaci některých funkcí soketu. Skutečný soubor knihovny soketu C obsahuje implementace pro různé funkce a makra, která poskytují základní funkce soketu poskytované knihovnami jazyků, ačkoli soubor soketu C je závislý na operačním systému a nemusí být v některých systémech implementován. Zápis kódu soketu C zahrnuje vytvoření rozhraní se standardním vstupním a výstupním protokolem, známým jako soket, a jeho použití k odesílání nebo přijímání informací, obvykle přes síť nebo prostřednictvím hardwaru. Programovací jazyk C je zamýšlen jako přenosný, ale programování soketů závisí na některých nízkoúrovňových systémových specifických funkcích, takže někdy může být obtížné psát programy v C, které používají sokety, ale také udržují přenositelnost napříč systémy.
Existují tři základní typy soketů, které soket C podporuje. První je známý jako datagram, druhý je tok a třetí je prvotní přístup. Datagram je typ soketu, který odesílá informace v malých svazcích známých jako pakety. Každý paket je odeslán ze zdroje s informacemi o cílovém soketu, který hledá přes síť. I když datagram může být účinným způsobem komunikace prostřednictvím soketů a často se používá k odesílání e-mailů, je také ztrátový, protože není zaručeno, že žádný odeslaný paket dorazí do cílového soketu.
Soket s proudem vytvoří připojení k jiné soketu a informace jsou předávány přímo mezi sokety. Při použití v programování soketu C tento typ soketu zajišťuje, že všechna odesílaná data jsou přijímána na druhé straně. Jednou komplikací je však to, že soket může někdy použít blokování, což znamená, že soket zastaví provádění procesu, dokud nebudou přijaty informace nebo dokud nebude soket uzavřen, i když použití vláken nebo rozvětvených procesů může tento problém ve většině případů vyřešit. Nezpracovaný přístup k soketu je poskytován jako prostředek skutečného propojení na téměř hardwarové úrovni s jakýmkoli zařízením, které soket hostí.
Zásuvky se běžně používají v různých formách pro internetovou komunikaci. Hardware a ovladače, které umožňují vytváření sítí, se liší podle operačního systému, takže může být obtížné najít soubor soketu C, který podporuje všechny možné kombinace. Z tohoto důvodu samotný soubor soketu C, stejně jako soubor záhlaví soketu, často obsahuje dlouhý seznam direktiv podmíněného kompilace, takže se bude kompilovat různě na různých systémech.