diff --git a/Simple Client Server/UDPServer.c b/Simple Client Server/UDPServer.c new file mode 100644 index 00000000..0fb36c16 --- /dev/null +++ b/Simple Client Server/UDPServer.c @@ -0,0 +1,55 @@ +// Server side implementation of UDP client-server model +#include +#include +#include +#include +#include +#include +#include +#include + +#define PORT 8080 +#define MAXLINE 1024 + +// Driver code +int main() { + int sockfd; + char buffer[MAXLINE]; + char *hello = "Hello from server"; + struct sockaddr_in servaddr, cliaddr; + + // Creating socket file descriptor + if ( (sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) { + perror("socket creation failed"); + exit(EXIT_FAILURE); + } + + memset(&servaddr, 0, sizeof(servaddr)); + memset(&cliaddr, 0, sizeof(cliaddr)); + + // Filling server information + servaddr.sin_family = AF_INET; // IPv4 + servaddr.sin_addr.s_addr = INADDR_ANY; + servaddr.sin_port = htons(PORT); + + // Bind the socket with the server address + if ( bind(sockfd, (const struct sockaddr *)&servaddr, + sizeof(servaddr)) < 0 ) + { + perror("bind failed"); + exit(EXIT_FAILURE); + } + + int len, n; + n = recvfrom(sockfd, (char *)buffer, MAXLINE, + MSG_WAITALL, ( struct sockaddr *) &cliaddr, + &len); + buffer[n] = '\0'; + printf("Client : %s\n", buffer); + sendto(sockfd, (const char *)hello, strlen(hello), + MSG_CONFIRM, (const struct sockaddr *) &cliaddr, + len); + printf("Hello message sent.\n"); + + return 0; +}