Sockets programming is de fundamentele technologie achter communicatie op TCP / IP-netwerken. Een socket is een eindpunt van een tweewegverbinding tussen twee programma's die op een netwerk worden uitgevoerd. De socket biedt een bidirectioneel communicatie-eindpunt voor het verzenden en ontvangen van gegevens met een andere socket. Socket-verbindingen werken normaal gesproken tussen twee verschillende computers op een lokaal netwerk (LAN) of via internet, maar ze kunnen ook worden gebruikt voor communicatie tussen processen op één computer.
Sockets en adressen
Socket-eindpunten op TCP / IP-netwerken hebben elk een uniek adres dat de combinatie is van een IP-adres en een TCP / IP-poortnummer. Omdat de socket is gebonden aan een specifiek poortnummer, kan de TCP-laag de toepassing identificeren die de verzonden gegevens zou moeten ontvangen. Bij het maken van een nieuwe socket genereert de socketbibliotheek automatisch een uniek poortnummer op dat apparaat. De programmeur kan ook poortnummers opgeven in specifieke situaties.
Hoe Server Sockets werken
Meestal wordt een server op één computer uitgevoerd en heeft deze een socket die is verbonden met een specifieke poort. De server wacht op een andere computer om een ​​verbindingsverzoek te doen. De clientcomputer kent de hostnaam van de servercomputer en het poortnummer waarnaar de server luistert. De clientcomputer identificeert zichzelf en, als alles goed gaat, kan de clientcomputer verbinding maken met de server.
Socket Libraries
In plaats van rechtstreeks te coderen naar low-socket API's, gebruiken netwerkprogrammeurs meestal socketbibliotheken. Twee veelgebruikte socketbibliotheken zijn Berkeley Sockets voor Linux / Unix-systemen en WinSock voor Windows-systemen.
Een socketbibliotheek biedt een reeks API-functies die vergelijkbaar zijn met die van programmeurs voor het werken met bestanden, zoals open (), read (), write () en close ().




