Unix Socket – Server exempel
för att göra en process till en TCP −server måste du följa stegen nedan –
-
skapa ett uttag med Socket() systemanrop.
-
binda uttaget till en adress med systemanropet bind (). För ett serveruttag på Internet består en adress av ett portnummer på värddatorn.
-
lyssna efter anslutningar med systemanropet listen ().
-
Acceptera en anslutning med accept () systemanropet. Detta samtal blockerar vanligtvis tills en klient ansluter till servern.
-
skicka och ta emot data med hjälp av Read() och write() systemanrop.
låt oss nu lägga dessa steg i form av källkod. Sätt den här koden i filservern.C och kompilera den med gcc kompilator.
hantera flera anslutningar
för att tillåta servern att hantera flera samtidiga anslutningar gör vi följande ändringar i ovanstående kod −
-
sätt accept-uttalandet och följande kod i en oändlig slinga.
-
När en anslutning har upprättats, Ring fork () för att skapa en ny process.
-
barnprocessen stänger sockfd och anropar doprocessing-funktionen och skickar den nya socket-filbeskrivaren som ett argument. När de två processerna har avslutat sin konversation, vilket indikeras av doprocessing() återvänder, avslutas denna process helt enkelt.
-
den överordnade processen stänger newsockfd. Eftersom all denna kod är i en oändlig slinga kommer den att återgå till accept-uttalandet för att vänta på nästa anslutning.
följande kodseqment visar ett enkelt genomförande av doprocessing funktion.