Utičnice, bilo da se koriste u Linux® ili drugom operativnom sustavu (OS), napravljene su za uspostavljanje veze između klijentskog programa i poslužitelja. To omogućuje dvama programima da dijele informacije, što je važno za mnoge procese. Postoje mnoge mogućnosti za zabrljati Linux® socket programiranje u bilo kojoj fazi, ali ovi savjeti mogu olakšati zadatak programiranja Linux® socketa. To će uključivati pravilan način kodiranja veze klijenta i poslužitelja, standardizirane portove i korištenje odgovarajuće vrste utičnice i domene.
Programiranje strane klijenta i poslužitelja utičnice uključuje različite procese. Na strani klijenta, prva radnja je stvaranje utičnice putem “socket().” Nakon toga, programer mora koristiti naredbu “connect()” za povezivanje s poslužiteljem. Konačno, on ili ona moraju koristiti naredbe “read()” i “write()” za slanje i primanje podataka putem utičnice s poslužitelja.
Na strani poslužitelja počinje na isti način, s naredbom “socket()”. Nakon toga, poslužitelj se mora povezati s klijentom pomoću “bind()”. Poslužitelj mora “slušati()” klijenta kako bi osigurao da je utičnica spojena i da klijent odgovara. Kada poslužitelj potvrdi vezu, programer samo završava programiranje Linux® socketa naredbom “accept()”. Ako se programiranje utičnice Linux® na strani klijenta ili poslužitelja obavlja drugim redoslijedom, ili ako se bilo što preskoči, utičnica će ili odbiti vezu ili neće prikazati nikakve informacije.
Za spajanje na poslužitelj, klijent mora znati port poslužitelja. Postoje neki standardni portovi, kao što je Port 21 za protokol za prijenos datoteka (FTP), ali port je drugačiji za svaki program. Morate osigurati da je port ispravan ili se klijent može povezati s pogrešnim poslužiteljem.
U programiranju utičnica za Linux®, programer može odrediti nekoliko tipova utičnica, ali se koriste dvije glavne utičnice: datagram i stream. Datagram hvata poruku ili informacije s jedne strane utičnice i čita ih sve odjednom. Stream čita poruku onako kako je napravljena, znak po znak. Stream je sigurniji, ali datagram je bolji za poslužitelje koji isporučuju mnoge tekstualne poruke.
Ponekad se u Linux® programiranju utičnice odbija utičnica iako je svo programiranje obavljeno ispravno. To je često zato što utičnice za klijenta i poslužitelja imaju sukobljene adresne domene. Da bi se utičnica ispravno povezala, i poslužitelj i klijent moraju biti na istoj domeni, kao što je internetska domena.