Wat is socketprogrammering?
Socket-programmering is een programmeerschema waarin sockets worden gebruikt en gemanipuleerd om een verbinding tussen software tot stand te brengen. Sockets worden gebruikt om software te verbinden tussen verschillende computers of binnen dezelfde computer, zodat de programma's gegevens kunnen delen. Socket-programmering wordt gebruikt met instant messaging, internetbrowsers, programma's voor het delen van bestanden en alles wat de computer dwingt verbinding te maken met een systeem. De meeste sockets worden automatisch geprogrammeerd, maar sommige besturingssystemen (OS) leggen deze verantwoordelijkheid in handen van de gebruiker.
Bij socketprogrammering wordt een lijst met opdrachten gebruikt om een socket van de ene computer met de andere te verbinden. Om bijvoorbeeld een instant messenger-programma te laten werken, moet het verbinding maken met een tweede computer. Om deze verbinding te maken, wordt een stopcontact gebruikt. Door de verbinding tot stand te brengen, kunnen de twee computers nu verbinding maken en met elkaar praten.
Peer-to-peer (P2P) -programma's zijn speciale gevallen als het gaat om socketprogrammering. De meeste programma's fungeren als een client of een server. Een P2P-programma fungeert als beide, daarom kunnen gebruikers bestanden van één persoon downloaden, terwijl bestanden tegelijkertijd van de gebruiker worden gedownload.
Hoewel de meeste socketprogrammering wordt gebruikt zodat twee computers kunnen samenwerken, is het ook nuttig voor twee programma's op dezelfde computer. Dit staat bekend als interprocessing, waardoor een programma informatie uit een ander programma kan halen en gebruiken. Als een programma bijvoorbeeld een maker van een diavoorstelling is en informatie uit een videoprogramma nodig heeft om video's in de dia af te spelen, wordt er een aansluiting gemaakt om de diavoorstelling en videoprogramma's te verbinden. Interprocessing is gebruikelijk, maar niet zo gebruikelijk als het gebruik van sockets tussen twee computers.
Bij het gebruik van socketprogrammering moeten de programmeur en de gebruiker onthouden dat sockets bidirectioneel zijn. Dit betekent dat beide computers met elkaar kunnen praten en tegelijkertijd gegevens van elkaar kunnen afhalen. Het openen van een computer voor een ander systeem kan gevaarlijk zijn, omdat de andere kant een aanval kan starten als de gebruiker kwaadaardig is. Dit is echter zeldzaam en het aansluiten van een socket op een ander systeem is meestal veilig.
Sockets worden meestal automatisch gemaakt op het besturingssysteem, of met beperkte programmering. In OS-interfaces waar de opdrachtregel vaak wordt gebruikt, moet de gebruiker de sockets vaak handmatig smeden. Dit dwingt de gebruiker enkele basis socketprogrammering te kennen, zodat deze belangrijke verbindingen kunnen worden gemaakt. Als de socket niet is gemaakt, kan de computer niet communiceren met andere systemen, waardoor het nut van de computer wordt beperkt.