Send 2 C -funksjon

Send 2 C -funksjon
"For å sende en melding fra en stikkontakt til en annen kanal, kan vi bruke systemets send (), sendto () og sendmsg () -funksjonene til C -språket i Kali Linux -systemet. Vi kan påkalle Send () -funksjonen når kontakten er tilkoblet (slik at den tiltenkte mottakeren er kjent). Eksistensen av flagg er den eneste differensiereren mellom Send () og skriv (2) funksjoner. Send () -funksjonen tilsvarer å skrive (2) med en Flags -parameter på null. Dessuten tilsvarer den neste samtalen WQ1 Send (socket_file_descriptor, buffer, lengde, flagg);
SendTo (socket_file_descriptor, buffer, lengde, flagg, null, 0);

Sendingssokkelsens filbeskrivelse er inneholdt i argumentet socket_file_descriptor. Meldingen er plassert i en buffer og har lengde på lengde for Send () og SendTo (). Vi trenger en server- og klientterminaler for å forstå funksjonaliteten til Send () -funksjonen praktisk talt. For dette formålet må vi skrive koden for serveren så vel som klienten. Ved å bruke VIM -redigereren, oppretter du en server.c Programmeringsfil. Dette er kommandoen for å åpne en kodingsfil i Vim Editor.”

Etter å ha inkludert de nødvendige overskriftsfilene i de første fem linjene på serveren.C -fil, vi definerer en portvariabel og setter verdien til 8000. Etter lanseringen av hovedfunksjonen, erklærer vi tre variabler av heltallstype kalt Server FD (serverfilbeskrivelse), en ny stikkontakt og en melding som ble lest i den første linjen. Erklære adressevariabelen av sockaddr -typen etter det.

Deretter definerer vi verdien av et variabelt alternativ for å være 1. Bruker størrelse_ av -funksjonen, som er lik adresse, definerer adresselengden variabel. Angi størrelsen på karaktertypens variabel buffer til 1024, og definer verdiene til 0. En variabel melding av karaktertype blir deretter definert og gitt verdien av “Hei, jeg er server. Hvordan kan jeg hjelpe deg?”. Typene adresser som kontakten din kan kommunisere med er utpekt av adressefamilien AF_inet (i dette tilfellet Internet Protocol V4 -adresser).

I en betinget uttalelse, tilordne serverfilbeskrivelsen og sjekk om oppgaven forårsaker en feil. Hvis den mislykkes, vis feilmeldingen “Socket mislyktes” og la hovedfunksjonen. Ved hjelp av Setsockopt () -funksjonen kan et applikasjonsprogram administrere hvordan en stikkontakt oppfører seg. Fordi port 8080 ikke er tilgjengelig, fester vi med tvangstaket til port 8000 i dette betingede uttrykket. Vi binder med målbevisst serveruttaket til port 8080 i den andre betingede linjen. Hvis bindingsprosessen ikke gikk som planlagt, bruk Perror -metoden for å vise en feilmelding og utgangsfunksjonen for å forlate hovedfunksjonen. Bekreft om serveren lytter etter klientforespørselen i det tredje betingede uttrykket.

Vi godtar serverforbindelsen og angir den nye sokkelverdien i den fjerde betingede setningen, noe som indikerer at serveren mottar klientforespørselen. Meldingen som er sendt av klienten ved hjelp av stikkontakten og bufferen, skal nå leses. Klientmeldingen vises deretter på terminalskjermen og sendt til klienten som er angitt i begynnelsen av hovedfunksjonen. Lukk kontakten og slå av kanalen ved å bruke nedleggelsesmekanismen etter at en vellykket kommunikasjon har funnet sted mens du har gitt serverfilbeskrivelsen og steng RDWR -kommandoen.

Lukk VIM -redigereren og kompiler koden ved å bruke GCC -kompilatoren. Lagre utdata- eller objektfilen i serverfilen:

Det er nå på tide å teste om serverkoden kjører eller ikke etter at den har fullført samlingen. Bruke./serverskript inne i terminalen og Enter -tasten for å gjøre dette. Når markøren blinker, er serveren aktiv og venter på en forespørsel fra klienten:

Nå må vi skrive klientkoden ved hjelp av VIM -redigereren og lagre den i klienten.C -fil.

Koden for klienten vises på skjermen nedenfor. Den inkluderer overskriftsfilene i de første linjene og angir porten som brukes til kommunikasjon mellom server og klient til 8000. Lag tre variabler av heltallstype og sett verdien på sokkene til 0 inne i hovedfunksjonen. Neste, lag en variabel med sockaddr i type. Angi en meldingsvariabel med verdien “Hilsen fra klienten!”Og lagre det.

Bruk nå en betinget uttalelse for å opprette kontakten og lagre verdien til sokkelvariabelen. IPv4- eller IPv6 -adressene blir deretter konvertert fra tekst til binær. Vi bruker serverens standard 127.0.0.1 IP -adresse. Vi bruker INET_PTON -funksjonen av denne grunn. Deretter oppretter vi koden for å bruke Connect -funksjonen for å koble til kontakten og definere klientfilbeskrivelsen. Serveradressen ble levert til den. Vi er nå forberedt på å bruke sendfunksjonen for å levere meldingen til serveren.

Stikkontakten, melding, meldingslengde og flagg-som er satt til 0-er alle inkludert i sendemetoden. Vis på klientterminalen når meldingen er sendt. Les deretter serverens svar og vis det på skjermen. Lukk filbeskrivelsen etter en vellykket kommunikasjon.

Sett sammen koden som gitt i utdraget nedenfor.

Du må huske på at du må kjøre serveren før du kjører klienten, for hvis serveren ikke svarer, vil ikke klienten koble til, og en feilmelding vises på skjermen. I tilfelle et kommunikasjonsfordeling, er dette produksjonen.

Her er skjermbildet for vellykket kommunikasjon på serversiden:

På klientsiden:

Konklusjon

Innenfor denne artikkelen har vi demonstrert bruken av Send () -funksjonen til C i Kali Linux -programmet. Vær oppmerksom på at vi ikke kan samhandle på samme terminal, så vi må åpne to, en for serveren og en annen for klienten. Dette eksemplet kan justeres i henhold til brukerbehov.