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
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
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
Get step-by-step solutions from verified subject matter experts
