Socket Connect 2 C -funksjon

Socket Connect 2 C -funksjon

Kontakten kobler til programmering i C er definert som de to nodene i et nettverk som kan koble seg sammen og samhandle med hverandre. Den andre kontakten (noden) når ut til den første stikkontakten for å etablere en tilkobling mens den første stikkontakten lytter på en bestemt port ved en IP. En stikkontakt fungerer som en kommunikasjonskanal mellom to parter for å sende meldinger. Vi skal skrive denne guiden for å forbedre din forståelse av sokkelforbindelsen ved å bruke C -programmeringsparadigmet betydelig. Vi sender meldinger mellom serveren og klienten ved å bruke C -programmeringskonseptet i denne guiden.

Eksempel:

Eksemplene presentert i denne guiden er utført på Ubuntu 20.04. Dermed for å gjøre disse eksemplene med Ubuntu 20.04, må GCC -kompilatoren installeres. Etter at GCC er installert, er det skrevet noen C -koder for å demonstrere bruken av "Socket Connect". I dette eksemplet skal vi opprette to forskjellige kodefiler, den ene er klientsiden-koden og den andre er serversiden til serversiden. Vi kobler sammen begge filene og sender meldinger mellom dem.

Serversiden

Vi bruker tekstredigereren som følger med Ubuntu 20.04. Først legger vi til de forskjellige overskriftsfilene som vist på skjermbildet. Disse overskriftsfilene er viktige for denne sokkelkoblingskoden. Etter disse overskriftsfilene definerer vi porten “8080”. Etter dette bruker vi "Main ()" -funksjonen og har de forskjellige lokale variablene i denne "Main ()" -funksjonen. Vi ceate en "buffer []" av størrelse "1024" under disse variablene. Bufferen brukes her til å sende og motta dataene.

Deretter oppretter vi stikkontakten inne i "hvis" -uttalelsen. I denne kontakten gir vi IP -adressen som "AF_INET". Tilkoblingstypen er “SOCK_STREAM” som sendes hit som den andre parameteren og passerer “0” som den tredje parameteren. Hvis den gitte tilstanden er tilfreds, blir uttalelsen under denne "hvis" -uttalelsen utført der vi setter "Perror" -uttalelsen som skriver ut feilen på terminalen. Deretter fester vi denne kontakten til port “8080”.

Vi bruker "setSocketopt". Dette letter endring av parametrene for kontakten som filbeskrivelsen SOCKFD refererer til. Selv om det er fullt valgfritt, fremmer dette adressen og havnens gjenbruk. Feil som "adresse som allerede er i bruk" unngås. Etter dette spesifiserer vi adressen for kontakten. Den er definert i overskriftsfilen. For “Adressen.Sin_port ", vi bruker" Htons "som brukes til å konvertere portnummeret til en vertsbytebestilling.

Deretter har vi "bind ()" -funksjonen i "hvis" -uttalelsen. Denne "bind ()" -funksjonen brukes til å binde en stikkontakt til en adresse. Den inneholder tre parametere. Etter dette lager vi en "valread" -variabel og setter "leste" "fucntion. I stedet for den første filbeskrivelsen som leveres av Socket, bruker lesesamtalen den nye filbeskrivelsen levert av "Accept ()" -funksjonen. Vi har "printf" -uttalelsen som brukes til å vise dataene. Deretter bruker vi "send ()" -funksjonen. Denne funksjonen brukes til å sende dataene på stikkontaktene.

Deretter har vi igjen "printf" -uttalelsen og "lukk ()" -funksjonen. Dette brukes til å slå av stikkontakten og frigjøre alle ressursene som er tildelt kontakten. "Shut Down ()" -funksjonen er også her for å slå av tilkoblingen av kontakten. Til slutt har vi en "retur 0" -uttalelse.



Klientsiden-kode

Denne koden ligner den forrige serverkoden. Vi setter inn de forskjellige overskriftsfilene som er nødvendige for denne koden. Deretter erklærer vi "hoved" -funksjonen. Innenfor denne "Main ()" -funksjonen har vi forskjellige lokale variabler. Vi etablerer en "buffer []" av størrelse "1024" etter disse variablene. Dataoverføringen og mottakelsen i dette tilfellet bruker bufferen. Vi oppretter kontakten i "hvis" -uttalelsen. IP -adressen for denne kontakten er "Af inet". Tilkoblingstypen for denne kontakten er “Sock Stream” som leveres som den andre parameteren og “0” som den tredje parameteren.

Etter dette spesifiserer vi adressene etter opprettelsen av kontakten. Deretter bruker vi denne adressen i "hvis" -uttalelsen og har "printf" -erklæringen her. Det første argumentet vi har er "Socket File Descriptor", det andre argumentet er vertens adresse, og det tredje argumentet er adressestørrelsen. "Send ()" -funksjonen brukes deretter. Dataene som sendes gjennom stikkontaktene sendes ved hjelp av denne funksjonen. "Printf" -kommandoen og "lukk ()" -funksjonen er deretter til stede igjen. Dette gjøres for å lukke kontakten og frigjøre alle ressursene som er tilordnet den.

Produksjon:

Siden vi forventes å kjøre to uavhengige koder, må vi starte to separate terminaler for å oppnå dette målet. Klientsiden-koden kjøres på den ene terminalen mens koden på serversiden kjører på den andre terminalen. I den første terminalen skriver vi inn følgende kommando for å kompilere vår kode på serversiden:

Ved å kjøre følgende kommando i den andre terminalen, sammenstiller vi klientsiden-koden på samme måte:

Vi utfører begge kodene en om gangen når de blir samlet. Siden koden på serversiden er ment å overvåke tilkoblingsforespørslene, må vi imidlertid utføre den først. Følgende kommando kan brukes til å utføre koden på serversiden:

Etter dette kan følgende kommando brukes til å utføre klientsiden-koden:

Etter å ha brukt begge kommandoene på begge terminalene samtidig, får vi denne utgangen som vises i det følgende:

Konklusjon

Vi presenterte denne guiden for å hjelpe deg med å forstå “Socket Connect” i C -programmering. Vi forklarte dette i detalj og ga eksempler som utgang. Du vil kunne sende og motta dataene mellom en klient og server effektivt ved å bruke stikkontaktene etter å ha gått gjennom eksemplet som er gitt deg i denne guiden. Dette eksemplet fungerer bare som en enkel illustrasjon om hvordan du kobler stikkontaktene til C -programmeringen og hvordan dataene sendes.