Socket programavimas yra programavimo schema, kurioje lizdai naudojami ir manipuliuojami, kad būtų sukurtas ryšys tarp programinės įrangos. Lizdai naudojami programinei įrangai sujungti tarp skirtingų kompiuterių arba tame pačiame kompiuteryje, kad programos galėtų dalytis duomenimis. Lizdų programavimas naudojamas su momentiniais pranešimais, interneto naršyklėmis, failų dalijimosi programomis ir viskuo, kas verčia kompiuterį prisijungti prie sistemos. Dauguma lizdų užprogramuojami automatiškai, tačiau kai kurios operacinės sistemos (OS) šią atsakomybę perduoda vartotojui.
Lizdų programavimas apima komandų sąrašo naudojimą, norint prijungti lizdą iš vieno kompiuterio į kitą. Pavyzdžiui, kad momentinių pranešimų programa veiktų, ji turi prisijungti prie antrojo kompiuterio. Norint sukurti šį ryšį, naudojamas lizdas. Sukūrus ryšį, du kompiuteriai dabar gali susieti ir kalbėti vienas su kitu.
Peer-to-peer (P2P) programos yra ypatingi atvejai, kai kalbama apie lizdų programavimą. Dauguma programų veikia kaip klientas arba serveris. P2P programa veikia kaip abi, todėl vartotojai gali atsisiųsti failus iš vieno asmens, o failai atsisiunčiami iš vartotojo tuo pačiu metu.
Nors dauguma lizdų programavimo naudojami tam, kad du kompiuteriai galėtų sąveikauti, jis taip pat naudingas dviem programoms tame pačiame kompiuteryje. Žinomas kaip tarpinis apdorojimas, tai leidžia vienai programai paimti informaciją iš kitos programos ir ją naudoti. Pavyzdžiui, jei viena programa yra skaidrių demonstravimo kūrėja ir norint paleisti vaizdo įrašus skaidrėje reikia informacijos iš vaizdo įrašų programos, tada yra sukurtas lizdas skaidrių demonstracijai ir vaizdo programoms sujungti. Tarpinis apdorojimas yra įprastas, bet ne toks įprastas kaip lizdų tarp dviejų kompiuterių naudojimas.
Naudodamiesi lizdų programavimu, programuotojas ir vartotojas turi atsiminti, kad lizdai yra dvikrypčiai. Tai reiškia, kad abu kompiuteriai gali kalbėti vienas su kitu, kartu imdami duomenis vienas iš kito. Kompiuterio atidarymas kitai sistemai gali būti pavojingas, nes kita pusė galės pradėti ataką, jei jos vartotojas bus piktybiškas. Tačiau tai retai pasitaiko, o lizdo prijungimas prie kitos sistemos paprastai yra saugus.
Lizdai paprastai sukuriami automatiškai OS arba su ribotu programavimu. OS sąsajose, kuriose dažnai naudojama komandų eilutė, vartotojas dažnai turės rankiniu būdu padirbti lizdus. Tai verčia vartotoją žinoti kai kuriuos pagrindinius lizdų programavimus, kad būtų galima atlikti šiuos svarbius ryšius. Jei lizdas nebus sukurtas, kompiuteris negalės susisiekti su kitomis sistemomis, apribodamas kompiuterio naudingumą.