Vad är Socket C?
"Socket C" är en term som ibland används för att hänvisa till processen att skriva socketkod i programmeringsspråket C och ibland används för att hänvisa till den verkliga biblioteksfilen som innehåller implementeringen för vissa socketfunktioner. Den faktiska socket C-biblioteksfilen innehåller implementeringar för olika funktioner och makron som tillhandahåller den grundläggande socketfunktionen som tillhandahålls av språkbiblioteken, även om socket C-filen är operativsystemberoende och kanske inte implementeras på vissa system. Att skriva socket C-kod innebär att skapa ett gränssnitt med ett standardinmatnings- och utgångsprotokoll, känt som ett socket, och använda det för att skicka eller ta emot information, vanligtvis via ett nätverk eller genom en hårdvara. C-programmeringsspråket är avsett att vara portabelt, men sockelprogrammering förlitar sig på vissa lågspecifika systemspecifika funktioner, så det kan ibland vara svårt att skriva program i C som använder socklar men också upprätthåller portabilitet över system.
Det finns tre grundläggande typer av uttag som socket C stöder. Den första är känd som ett datagram, det andra är en ström, och den tredje är rå åtkomst. Ett datagram är en typ av uttag som skickar information i små buntar som kallas paket. Varje paket skickas från en källa med information om destinationsuttaget som det söker över ett nätverk. Medan ett datagram kan vara en effektiv metod för kommunikation genom uttag och ofta används för att skicka e-post, är det också förlorat, eftersom inget paket som skickas garanteras anländer till destinationsuttaget.
Ett strömuttag ansluter till ett annat uttag och information skickas direkt mellan uttagen. När den används i socket C-programmering säkerställer den här sockeln att all data som skickas tas emot på andra sidan. En komplikation är emellertid att uttaget ibland kan använda blockering, vilket innebär att uttaget kommer att stoppa exekveringen av en process tills information tas emot eller tills uttaget stängs, även om användning av trådar eller gaffelprocesser kan lösa problemet i de flesta fall. Raw socket access tillhandahålls som ett sätt att faktiskt gränssnitt på en nästan hårdvarunivå med vilken enhet som är värd för uttaget.
Socklar används vanligtvis i olika former för internetkommunikation. Maskinvaran och drivrutinerna som tillåter nätverkning varierar mycket beroende på operativsystem, så det kan vara svårt att hitta en socket C-biblioteksfil som stöder alla möjliga kombinationer. Av denna anledning innehåller själva socket C-filen, såväl som sockethuvudfilen, en lång lista med villkorade sammanställningsdirektiv så att den kommer att sammanställas annorlunda på olika system.