0% found this document useful (0 votes)
51 views5 pages

Client Server

The document contains code for a server-side and client-side program to establish a socket connection between the two. The server-side code creates a socket, binds it to a port, listens for incoming connections, accepts a connection, receives and responds to messages. The client-side code creates a socket, connects to the server, sends a message, and receives a response back before closing the connection.

Uploaded by

1da21cs137.cs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views5 pages

Client Server

The document contains code for a server-side and client-side program to establish a socket connection between the two. The server-side code creates a socket, binds it to a port, listens for incoming connections, accepts a connection, receives and responds to messages. The client-side code creates a socket, connects to the server, sends a message, and receives a response back before closing the connection.

Uploaded by

1da21cs137.cs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Server side program

#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>

int main(void)
{
int socket_desc, client_sock, client_size;
struct sockaddr_in server_addr, client_addr;
char server_message[2000], client_message[2000];

// Clean buffers:
memset(server_message, '\0', sizeof(server_message));
memset(client_message, '\0', sizeof(client_message));

// Create socket:
socket_desc = socket(AF_INET, SOCK_STREAM, 0);

if(socket_desc < 0){


printf("Error while creating socket\n");
return -1;
}
printf("Socket created successfully\n");

// Set port and IP:


server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(2000);
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
// Bind to the set port and IP:
if(bind(socket_desc, (struct sockaddr*)&server_addr, sizeof(server_addr))<0){
printf("Couldn't bind to the port\n");
return -1;
}
printf("Done with binding\n");

// Listen for clients:


if(listen(socket_desc, 1) < 0){
printf("Error while listening\n");
return -1;
}
printf("\nListening for incoming connections.....\n");

// Accept an incoming connection:


client_size = sizeof(client_addr);
client_sock = accept(socket_desc, (struct sockaddr*)&client_addr, &client_size);

if (client_sock < 0){


printf("Can't accept\n");
return -1;
}
printf("Client connected at IP: %s and port: %i\n", inet_ntoa(client_addr.sin_addr),
ntohs(client_addr.sin_port));

// Receive client's message:


if (recv(client_sock, client_message, sizeof(client_message), 0) < 0){
printf("Couldn't receive\n");
return -1;
}
printf("Msg from client: %s\n", client_message);

// Respond to client:
strcpy(server_message, "This is the server's message.");

if (send(client_sock, server_message, strlen(server_message), 0) < 0){


printf("Can't send\n");
return -1;
}

// Closing the socket:


close(client_sock);
close(socket_desc);

return 0;
}

Client side program

#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main(void)
{
int socket_desc;
struct sockaddr_in server_addr;
char server_message[2000], client_message[2000];

// Clean buffers:
memset(server_message,'\0',sizeof(server_message));
memset(client_message,'\0',sizeof(client_message));

// Create socket:
socket_desc = socket(AF_INET, SOCK_STREAM, 0);

if(socket_desc < 0){


printf("Unable to create socket\n");
return -1;
}

printf("Socket created successfully\n");

// Set port and IP the same as server-side:


server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(2000);
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");

// Send connection request to server:


if(connect(socket_desc, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0){
printf("Unable to connect\n");
return -1;
}
printf("Connected with server successfully\n");

// Get input from the user:


printf("Enter message: ");
gets(client_message);

// Send the message to server:


if(send(socket_desc, client_message, strlen(client_message), 0) < 0){
printf("Unable to send message\n");
return -1;
}

// Receive the server's response:


if(recv(socket_desc, server_message, sizeof(server_message), 0) < 0){
printf("Error while receiving server's msg\n");
return -1;
}

printf("Server's response: %s\n",server_message);

// Close the socket:


close(socket_desc);

return 0;
}

You might also like