UDP SERVER CLIENT LINUX Network Programming in C Complete Code Function Explanation

Veröffentlicht am: 28 Juni 2020
auf dem Kanal: LearnEveryone
11,210
154

First, replace by 'Greater than' and 'Smaller than' 'Angle Brackets' then Run the program.
As 'Angle Brackets' are not allowed in the Description.
==========================================================================
#include (Put Less than Angle bracket)stdio.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)netdb.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)sys/socket.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)sys/types.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)netinet/in.h(Put Greater than Angle Bracket)

/* Creates a datagram server. The port number is passed as an argument.This server runs forever */
void error(char *msg)
{
perror(msg);
exit(0);
}

int main(int argc, char *argv[])
{
int sock, length, fromlen, n;
struct sockaddr_in server;
struct sockaddr_in from;
char buf[1024];

if (argc (Put Less than Angle bracket) 2)
{
fprintf(stderr, "ERROR, no port provided\n");
exit(0);
}

sock=socket(AF_INET, SOCK_DGRAM, 0);
if (sock (Put Less than Angle bracket) 0)
{
error("Opening socket");
}
length = sizeof(server);
bzero(&server,length);
server.sin_family=AF_INET;
server.sin_addr.s_addr=INADDR_ANY;
server.sin_port=htons(atoi(argv[1]));
if (bind(sock,(struct sockaddr *)&server,length)(Put Less than Angle bracket)0)
{
error("binding");
}
fromlen = sizeof(struct sockaddr_in);
while (1)
{
n = recvfrom(sock,buf,1024,0,(struct sockaddr *)&from,&fromlen);
if (n (Put Less than Angle bracket) 0)
{
error("recvfrom");
}
write(1,"Received a datagram: ",21);
write(1,buf,n);
n = sendto(sock,"Got your message\n",17,0,(struct sockaddr *)&from,fromlen);
if (n (Put Less than Angle bracket) 0)
{
error("sendto");
}
}
}
============================================================================
#include (Put Less than Angle bracket)stdio.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)stdlib.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)string.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)sys/socket.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)sys/types.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)netdb.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)netinet/in.h(Put Greater than Angle Bracket)
#include (Put Less than Angle bracket)arpa/inet.h(Put Greater than Angle Bracket)

/* UDP client in the internet domain */
void error(char *msg)
{
perror(msg);
exit(0);
}

int main(int argc, char *argv[])
{
int sock, length, n;
struct sockaddr_in server, from;
struct hostent *hp;
char buffer[256];
if (argc != 3)
{
printf("Usage: server port\n");
exit(1);
}

sock= socket(AF_INET, SOCK_DGRAM, 0);
if(sock(Put Less than Angle bracket)0)
{
error("socket");
}
server.sin_family =AF_INET;
hp=gethostbyname(argv[1]);
if(hp==0)
{
error("Unknown Host");
}
bcopy((char *)hp-(Put Greater than Angle Bracket)h_addr,(char *)&server.sin_addr,hp-(Put Greater than Angle Bracket)h_length);
server.sin_port = htons(atoi(argv[2]));
length=sizeof(struct sockaddr_in);
printf("Please enter the message: ");
bzero(buffer,256);
fgets(buffer,255,stdin);
n=sendto(sock,buffer,strlen(buffer),0,&server,length);
if (n (Put Less than Angle bracket) 0)
{
error("Sendto");
}
n = recvfrom(sock,buffer,256,0,&from, &length);
if (n (Put Less than Angle bracket) 0)
{
error("recvfrom");
}
write(1,"Got an ack: ",12);
write(1,buffer,n);
}


Auf dieser Seite können Sie das Online-Video UDP SERVER CLIENT LINUX Network Programming in C Complete Code Function Explanation mit der Dauer stunde minuten sekunde in guter Qualität ansehen, das der Benutzer LearnEveryone 28 Juni 2020 hochgeladen hat, den Link mit Freunden und Bekannten teilen, dieses Video wurde auf Youtube bereits 11,210 Mal angesehen und es wurde von 154 den Zuschauern gefallen. Viel Spaß beim Betrachtenden Zuschauern gefallen!