Sockets maken communicatie mogelijk tussen twee verschillende processen op dezelfde of verschillende machines. Om preciezer te zijn, het is een manier om met andere computers te praten met behulp van standaard Unix bestandsdescriptoren. In Unix wordt elke I/O actie gedaan door het schrijven of lezen van een bestandsdescriptor. Een bestandsdescriptor is gewoon een geheel getal geassocieerd met een open bestand en het kan een netwerkverbinding, een tekstbestand, een terminal of iets anders zijn.
voor een programmer lijkt een socket op een lage bestandsdescriptor. Dit komt omdat commando ‘ s zoals read() en write() op dezelfde manier met sockets werken als met files en pipes.
Sockets werden voor het eerst geïntroduceerd in 2.1 BSD en vervolgens verfijnd in hun huidige vorm met 4.2 BSD. De sockets functie is nu beschikbaar met de meeste huidige UNIX systeem releases.
Waar wordt Socket gebruikt?
een Unix-Socket wordt gebruikt in een client-server-toepassingskader. Een server is een proces dat een aantal functies uitvoert op verzoek van een client. De meeste applicatieniveau protocollen zoals FTP, SMTP en POP3 maken gebruik van sockets om verbinding te maken tussen client en server en vervolgens voor het uitwisselen van gegevens.
Sockettypes
er zijn vier typen sockets beschikbaar voor de gebruikers. De eerste twee worden het meest gebruikt en de laatste twee worden zelden gebruikt.
processen worden verondersteld alleen te communiceren tussen sockets van hetzelfde type, maar er is geen beperking die communicatie tussen sockets van verschillende typen verhindert.
-
Stream Sockets-levering in een netwerkomgeving is gegarandeerd. Als u via de stream socket drie items “A, B, C” verzendt, zullen ze in dezelfde volgorde aankomen − “A, B, C”. Deze sockets gebruiken TCP (Transmission Control Protocol) voor datatransmissie. Als levering onmogelijk is, ontvangt de afzender een foutindicator. Gegevensrecords hebben geen grenzen.
-
datagram Sockets-levering in een netwerkomgeving is niet gegarandeerd. Ze zijn verbindingsloos omdat je geen open verbinding nodig hebt zoals in Stream Sockets − je bouwt een pakket met de bestemmingsinformatie en verzendt het. Ze gebruiken UDP (User Datagram Protocol).
-
Raw Sockets-deze bieden gebruikers toegang tot de onderliggende communicatieprotocollen, die socket abstracties ondersteunen. Deze sockets zijn normaal datagram georiënteerd, hoewel hun exacte kenmerken afhankelijk zijn van de interface die door het protocol wordt geleverd. Raw sockets zijn niet bedoeld voor de algemene gebruiker; ze zijn vooral bedoeld voor diegenen die geïnteresseerd zijn in het ontwikkelen van nieuwe communicatieprotocollen, of voor het verkrijgen van toegang tot enkele van de meer cryptische faciliteiten van een bestaand protocol.
-
Sequenced Packet Sockets-ze zijn vergelijkbaar met een stream socket, met de uitzondering dat record grenzen worden behouden. Deze interface wordt alleen geleverd als onderdeel van de Network Systems (NS) Socket abstraction, en is zeer belangrijk in de meeste serieuze NS-toepassingen. Sequenced-packet sockets staan de gebruiker toe om de sequence Packet Protocol (SPP) of Internet Datagram Protocol (IDP) headers op een pakket of een groep pakketten te manipuleren, hetzij door het schrijven van een prototype header samen met de gegevens die moeten worden verzonden, of door het specificeren van een standaard header te gebruiken met alle uitgaande gegevens, en staat de gebruiker toe om de headers op inkomende pakketten te ontvangen.
Wat is het volgende?
de volgende hoofdstukken zijn bedoeld om uw basis te versterken en een basis voor te bereiden voordat u Server-en Client-programma ‘ s kunt schrijven met behulp van socket. Als u direct wilt springen om te zien hoe u een client en server programma te schrijven, dan kunt u dit doen, maar het wordt niet aanbevolen. Het wordt sterk aanbevolen dat je stap voor stap gaat en deze eerste paar hoofdstukken voltooit om je basis te maken voordat je verder gaat met programmeren.