Question: PLEASE USE MULTITHREADING IN THIS PROGRAM SO THAT MANY CLIENTS CONNECTED TO THE SERVER AND EACH CLIENT CAN SEND MESSAGE TO SERVER AND SERVER MESSAGE

PLEASE USE MULTITHREADING IN THIS PROGRAM SO THAT MANY CLIENTS CONNECTED TO THE SERVER AND EACH CLIENT CAN SEND MESSAGE TO SERVER AND SERVER MESSAGE SHOWN TO ALL CLIENTS AND ONE CLIENT MESSAGE SHOWN TO ALL CLIENTS.PLEASE MAKE CHANGINGS IN THIS CODE.

SERVER

#include #include #include #include #include #include #include #include #include #define PORT 5500

void func(int connfd){ char buffer[1024]; int n; while(1) { bzero(buffer, 1024); read(connfd, buffer, sizeof(buffer)); printf("From client: %s\t To client : ", buffer); bzero(buffer, 1024); n = 0; while ((buffer[n++] = getchar()) != ' '); write(connfd, buffer, sizeof(buffer)); if (strncmp("exit", buffer, 4) == 0){ printf("Server Exit... "); break; } } } int main(){ int sockfd, connfd, len; struct sockaddr_in serverAddr, cli; sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd == -1) { printf("socket creation failed... "); exit(0); } else{ printf("Socket successfully created.. "); } memset(&serverAddr, '\0', sizeof(serverAddr)); serverAddr.sin_family = AF_INET; serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); serverAddr.sin_port = htons(PORT); if((bind(sockfd, (struct sockaddr*)&serverAddr, sizeof(serverAddr))) != 0) { printf("socket bind failed... "); exit(0); } else{ printf("Socket successfully binded.. "); } if((listen(sockfd, 5)) != 0) { printf("Listen failed... "); exit(0); } else{ printf("Server listening.. "); } len = sizeof(cli); connfd = accept(sockfd, (struct sockaddr*)&cli, &len); if (connfd < 0) { printf("server accept failed... "); exit(0); } else{ printf("server accept the client... "); } func(connfd); close(sockfd); }

CLIENT

#include #include #include #include #include #include #include #include #include #define PORT 5500

int main(){ int clientSocket, ret; struct sockaddr_in serverAddr; char buffer[1024];

clientSocket = socket(AF_INET, SOCK_STREAM, 0); if(clientSocket < 0){ printf("[-]Error in connection. "); exit(1); } printf("[+]Client Socket is created. ");

memset(&serverAddr, '\0', sizeof(serverAddr)); serverAddr.sin_family = AF_INET; serverAddr.sin_port = htons(PORT); serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");

ret = connect(clientSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr)); if(ret < 0){ printf("[-]Error in connection. "); exit(1); } printf("[+]Connected to Server. ");

while(1){ printf("Client: \t"); scanf("%s", &buffer[0]); send(clientSocket, buffer, strlen(buffer), 0);

if(strcmp(buffer, ":exit") == 0){ close(clientSocket); printf("[-]Disconnected from server. "); exit(1); }

if(recv(clientSocket, buffer, 1024, 0) < 0){ printf("[-]Error in receiving data. "); }else{ printf("Server: \t%s ", buffer); } }

return 0; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!