C Programmering

POSIX-uttag med C-programmering

POSIX-uttag med C-programmering

Ett POSIX-uttag eller helt enkelt ett uttag definieras som en kommunikationsändpunkt. Till exempel, om två parter, A och B, har för avsikt att kommunicera med varandra, kommer det att krävas att båda dessa parter upprättar en koppling mellan sina respektive slutpunkter. Ett uttag förser de kommunicerande parterna med en gateway genom vilken meddelandena färdas. Om vi ​​pratar i termer av klienten och servern kommer uppgiften för serverns uttag att vara att lyssna på inkommande anslutningar, medan uttaget på klientsidan är ansvarig för att ansluta till serverns uttag. Denna artikel är avsedd att göra begreppet POSIX-uttag med C-programmering mycket tydligare.

Exempel på att använda Posix Socket med C-programmering i Linux Mint 20

Exemplet som presenteras i det här avsnittet visar en interaktion mellan en klient och en server. Klienten och servern är de två huvudenheterna i klienten / servermodellen i datorvärlden. I vårt exempel kommer både klienten och servern att skicka och ta emot meddelanden till och från varandra medan de använder POSIX Socket med C-programmering i Linux Mint 20. För att skapa tydlighet i förståelsen av koden har vi separerat koden på klientsidan och koden på serversidan och kommer att förklara dem båda separat nedan.

Serversidan Koden

För koden på serversidan har vi helt enkelt skapat ett tomt dokument i hemkatalogen för vårt Linux Mint 20-system och döpte det till server.c. I det tomma dokumentet måste du skriva kodavsnitten som visas i de tre bilderna nedan:

Koden som visas i bilderna ovan kan verka lång, men låt oss försöka förstå den på ett extremt enkelt sätt. Först och främst har vi skapat ett uttag och bifogat det med önskat portnummer, vilket i vårt fall är 8080. Sedan har vi skrivit en lyssningsfunktion som är där för att leta efter alla inkommande anslutningar från klienterna. I grund och botten lyckas klienten ansluta till servern bara på grund av närvaron av denna lyssningsfunktion. Och när den här anslutningen har upprättats är servern redo att skicka och ta emot data till och från klienten.

Läs- och sändningsfunktionerna tjänar syftet att ta emot respektive skicka meddelanden till klienterna. Vi har redan definierat ett standardmeddelande i vår kod som vi tänker skicka till vår klient, och det är "Hej från server". Efter att ha skickat detta meddelande till klienten kommer det att visas på klientsidan, medan ett meddelande som säger ”Hej meddelande skickat” kommer att visas på serverns sida. Det här handlar om vår serversida.

Kod på klientsidan

Nu, för klientsidakoden, har vi återigen skapat ett tomt dokument i hemkatalogen för vårt Linux Mint 20-system och namngav det klient.c. I det tomma dokumentet måste du skriva kodavsnitten som visas i de två bilderna nedan:

I klientsidakoden som visas i bilderna ovan har vi skapat ett uttag på samma sätt som vi gjorde för serversidan. Sedan finns det en anslutningsfunktion som försöker skapa en anslutning till servern genom den angivna porten. Och när den här anslutningen har godkänts av servern är klienten och servern redo att skicka och ta emot meddelanden till och från varandra.

Återigen, precis som koden på serversidan, är sändnings- och läsfunktionerna där för att skicka och ta emot meddelanden från servern. Vi har också nämnt ett standardmeddelande som vi vill skicka till servern, och det är "Hej från klient". Efter att ha skickat detta meddelande till servern kommer detta meddelande att visas på serversidan, medan ett meddelande som säger "Hej meddelande skickat" kommer att visas på klientsidan. Och detta tar oss till slutet av förklaringen av vår klientsides-kod.

Kompilering och körning av klient- och serversidan

Självklart kommer vi att spara både våra klientsidor och serversidesfiler efter att vi har skrivit dessa program, då är vi redo att kompilera och köra dessa koder. Därför kommer vi att kunna visualisera interaktionen mellan vår nyskapade klient och server. För att uppnå detta mål måste vi starta två olika terminaler eftersom vi ska köra två separata program. En terminal kommer att ägnas åt att köra serversidan och den andra för klientsidan.

Så för att kompilera vår serversida kod kommer vi att utföra följande kommando i den första terminalen:

$ gcc-server.c-o-server

Efter att ha kört det här kommandot, om det inte finns några fel i koden på serversidan, kommer inget att visas på terminalen, vilket kommer att vara en indikation på en lyckad sammanställning.

På samma sätt kommer vi att sammanställa klientsidakoden med kommandot nedan genom att köra den i den andra terminalen:

$ gcc-klient.c-o-klient

När båda koderna har sammanställts kör vi dem en efter en. Vi måste dock köra serversidan först eftersom den ska lyssna på anslutningsförfrågningarna. Serversidan kan köras med följande kommando:

$ ./ server

Efter att ha kört serversidakoden kan vi köra klientsidakoden med kommandot nedan:

$ ./klient

När både klienten och servern är igång kommer du att bevittna de utdata som visas i följande bilder på båda terminalerna:

Slutsats

Förhoppningsvis, efter att ha gått igenom exemplet som delas med dig i den här artikeln, kommer du att kunna använda POSIX-uttagen effektivt för att skicka och ta emot data mellan en klient och server. Detta exempel är bara en grundläggande demonstration av Posix-uttag med C-programmering, men du kan till och med göra dessa program mer komplexa enligt dina behov.

Hur du fångar och strömmar din spelsession på Linux
Tidigare betraktades spel bara som en hobby, men med tiden såg spelindustrin en enorm tillväxt när det gäller teknik och antalet spelare. Spelpubliken...
Bästa spel att spela med handspårning
Oculus Quest introducerade nyligen den fantastiska idén om handspårning utan kontroller. Med ett ständigt ökande antal spel och aktiviteter som utför ...
Hur man visar OSD-överlägg i helskärms Linux-appar och -spel
Att spela helskärmsspel eller använda appar i distraktionsfritt helskärmsläge kan avskärma dig från relevant systeminformation som syns i en panel ell...