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.