Hvordan sende en tekst Socket i UDP på ​​Linux

Hvordan sende en tekst Socket i UDP på ​​Linux


Når to datamaskiner kommunisere med hverandre, etablerer hver datamaskin en stikkontakt. Datamaskinen lagrer nettverkstilkoblingen i stikkontakten. Det er to vanlige socket typer: TCP og UDP. UDP er beregnet for korte meldinger. I motsetning til TCP, UDP sockets sende hele meldinger i en enkelt blokk, som gjengir UDP upålitelig. Linux-systemer implementere UDP når du sender tekstmeldinger på tvers av nettverk. UDP-meldinger bestå av enten tekst eller tall, og er kodet med C / C ++ programmeringsspråk.

Bruksanvisning

1 Start terminal ved å trykke "Ctrl", "Alt" og "T" samtidig.

2 Endre kataloger til din kode bin. Hvis koden bin er i "hjem" -mappen, skriver du inn følgende på kommandolinjen:

cd / home / bin

Trykk enter."

3 Opprett kildekoden filen for UDP tekstmelding ved å skrive følgende på kommandolinjen:

gedit ./udp.c

Trykk enter." Den "gedit" -vinduet vil vises på skjermen med tittelen "udp.c."

4 Kopier og lim inn følgende kode til "gedit" vinduet:

inkludere <stdio.h> inkluder <sys / types.h> inkluder <sys / socket.h> inkluder <netinet / in.h> inkluder <netdb.h>

void feil (char * msg)

{

perror(msg);

exit (0);

}

int main (int argc, char * argv [])

{

int sockfd, portno, n;

struct sockaddr_in serv_addr;

struct hostent * server;

char buffer [256];

if (argc & lt; 3) {

fprintf (stderr, "bruk% s vertsnavn port \ n", argv [0]);

exit (0);

}

portno = atoi (argv [2]);

sockfd = socket (AF_INET, SOCK_STREAM, 0);

if (sockfd & lt; 0)

error ( "Feil ved åpning av socket");

server = gethostbyname (argv [1]);

if (serveren == NULL) {

fprintf (stderr, "FEIL, slik vert \ n");

exit (0);

}

Bzero ((char *) og serv_addr, sizeof (serv_addr));

serv_addr.sin_family = AF_INET;

bcopy ((char *) server-> h_addr,

(Char *) og serv_addr.sin_addr.s_addr,

server-> h_length);

serv_addr.sin_port = htons (portno);

if (koble (sockfd, og serv_addr, sizeof (serv_addr)) & lt; 0)

error ( "FEIL tilkobling");

printf ( "Skriv inn meldingen:");

Bzero (buffer, 256);

fgets (buffer, 255, stdin);

n = write (sockfd, buffer, strlen (buffer));

if (n & lt; 0)

error ( "Feil ved skriving til socket");

Bzero (buffer, 256);

n = lest (sockfd, buffer, 255);

if (n & lt; 0)

error ( "Feil ved lesing fra socket");

printf ( "% s \ n", buffer);

returnere 0;

}

5 Lagre dokumentet ved å klikke på "Fil" og "Lagre".

6 Lukk "gedit" vinduet ved å klikke på "X" øverst i høyre hjørne. Terminalen vil vises på skjermen igjen.

7 Kompilere UDP koden ved å skrive følgende på kommandolinjen:

gcc -c udp.c

Trykk enter." Terminalen vil vise fremgang statusmeldinger som det kompilerer filen.

8 Bruk "UDP" program for å sende tekst via en UDP socket. På kommandolinjen, skriv:

udp <NOEN STRING> <NOEN ADRESSE>

Erstatt "<NOEN STRING>" med strengen du ønsker å sende. Erstatt "<NOEN ADRESSE>" med IP-adressen til en ekstern datamaskin som du har nettverkstilgang.