Unix Socket – Server Examples
om van een proces een TCP −server te maken, moet u Volg de onderstaande stappen –
-
Maak een socket met de socket() systeemaanroep.
-
Bind de socket aan een adres met behulp van de bind () systeemaanroep. Voor een serversocket op het Internet bestaat een adres uit een poortnummer op de hostmachine.
-
Listen voor verbindingen met de listen() systeemaanroep.
-
accepteer een verbinding met de accept() systeemaanroep. Deze aanroep blokkeert meestal totdat een client verbinding maakt met de server.
-
gegevens verzenden en ontvangen met behulp van de systeemaanroepen read() en write ().
laten we nu deze stappen in de vorm van broncode zetten. Zet deze code in de bestandsserver.c en compileer het met gcc compiler.
omgaan met meerdere verbindingen
om de server toe te staan meerdere gelijktijdige verbindingen te verwerken, maken we de volgende wijzigingen in de bovenstaande code −
-
plaats het accept statement en de volgende code in een oneindige lus.
-
nadat een verbinding tot stand is gebracht, roept u fork() aan om een nieuw proces aan te maken.
-
het dochterproces zal sockfd sluiten en doprocessing functie aanroepen, waarbij de nieuwe socket file descriptor als argument wordt doorgegeven. Wanneer de twee processen hun gesprek hebben voltooid, zoals aangegeven door doprocessing () terugkeren, dit proces gewoon eindigt.
-
het bovenliggende proces sluit newsockfd. Omdat al deze code zich in een oneindige lus bevindt, zal het terugkeren naar het accept statement om te wachten op de volgende verbinding.
de volgende code toont een eenvoudige implementatie van doprocessing functie.