“Socket C” je izraz koji se ponekad koristi za označavanje procesa pisanja koda utičnice u programskom jeziku C, a ponekad se koristi za označavanje stvarne datoteke biblioteke koja sadrži implementaciju za neke funkcije utičnice. Stvarna datoteka knjižnice utičnice C sadrži implementacije za različite funkcije i makronaredbe koje pružaju osnovnu funkcionalnost socketa koju pružaju knjižnice jezika, iako je datoteka socketa C ovisna o operacijskom sustavu i možda se neće implementirati na nekim sustavima. Pisanje koda utičnice C uključuje kreiranje sučelja sa standardnim ulaznim i izlaznim protokolom, poznatim kao utičnica, i korištenje za slanje ili primanje informacija, obično preko mreže ili kroz komad hardvera. Programski jezik C trebao bi biti prenosiv, ali programiranje utičnice oslanja se na neke funkcije specifične za sustav niske razine, tako da ponekad može biti teško napisati programe u C-u koji koriste utičnice, ali također održavaju prenosivost između sustava.
Postoje tri osnovne vrste utičnica koje podržava socket C. Prvi je poznat kao datagram, drugi je stream, a treći je sirovi pristup. Datagram je vrsta utičnice koja šalje informacije u malim paketima poznatim kao paketi. Svaki paket se šalje iz izvora s informacijama o odredišnoj utičnici koju traži preko mreže. Iako datagram može biti učinkovita metoda komunikacije putem utičnica i često se koristi za slanje e-pošte, također je s gubitkom, jer nijedan paket koji se šalje ne jamči da će stići na odredišnu utičnicu.
stream socket uspostavlja vezu s drugom utičnicom i informacije se prosljeđuju izravno između utičnica. Kada se koristi u programiranju utičnice C, ova vrsta utičnice osigurava da se svi podaci koji se šalju primaju s druge strane. Jedna je komplikacija, međutim, da utičnica ponekad može koristiti blokiranje, što znači da će utičnica zaustaviti izvršavanje procesa dok se ne primi informacija ili dok se utičnica ne zatvori, iako korištenje niti ili račvanih procesa može riješiti ovaj problem u većini slučajeva. Neobrađeni pristup utičnici pruža se kao sredstvo stvarnog sučelja na gotovo hardverskoj razini s bilo kojim uređajem koji hostira utičnicu.
Utičnice se obično koriste u različitim oblicima za internet komunikaciju. Hardver i upravljački programi koji omogućuju uspostavljanje umrežavanja uvelike se razlikuju ovisno o operacijskom sustavu, tako da može biti teško locirati datoteku biblioteke C socketa koja podržava sve moguće kombinacije. Iz tog razloga, sama datoteka utičnice C, kao i datoteka zaglavlja utičnice, često sadrži dugi popis direktiva uvjetne kompilacije tako da će se kompilirati drugačije na različitim sustavima.