Unix Socket – Server exempel

annonser

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.

annonser



Lämna ett svar

Din e-postadress kommer inte publiceras.