Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

CN Sessional

Name : Ayan Banerjee


Roll No. :1906470

Client:
#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<unistd.h>

#define MYPORT 9000


int mySocket;
struct sockaddr_in serverAddress, clientAddress;
void connectToServer();
void closeConnection();

int main(){
connectToServer();

char buffer;
printf("Enter a char. : ");
scanf("%c",&buffer);
send(mySocket, &buffer, sizeof(buffer), 0);

closeConnection();
return 0;
}

void connectToServer(){
if((mySocket = socket(AF_INET, SOCK_STREAM, 0)) == -1){
printf("socket() error!\n");
exit(-1);
}
printf("Socket created successfully!\n");

clientAddress.sin_family = AF_INET;
clientAddress.sin_port = htons(MYPORT);
clientAddress.sin_addr.s_addr = INADDR_ANY;

printf("Sending connect request at port %d...\n",MYPORT);


if(connect(mySocket, (struct sockaddr*)&clientAddress,
(socklen_t)sizeof(clientAddress)) == -1){
printf("connect error()!\n");
exit(-1);
}

printf("\n*** TCP connection established successfully! ***\n\n");


return;
}

void closeConnection(){
close(mySocket);
printf("\n*** Connection closed! ***\n\n");
return;
}

Server:
#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<unistd.h>

#define MYPORT 9000


int serverSocket, clientSocket;
struct sockaddr_in serverAddress, clientAddress;
void connectToClient();
void closeConnection();

int main(){
char buffer[5];
connectToClient();
for(int i=0; i<4; ++i){

if(listen(serverSocket, 2) == -1){
printf("listen() error!\n");
exit(-1);
}
// printf("Listening at port %d for connection request...\n",MYPORT);
int length = sizeof(clientAddress);
if((clientSocket = accept(serverSocket, (struct sockaddr*)&clientAddress,
(socklen_t*)&length)) == -1){
printf("accept() error!\n");
exit(-1);
}
// printf("Connection request accepted from client #%d!\n",i+1);

// printf("\n*** TCP connection established successfully! ***\n\n");

char temp;
recv(clientSocket, &temp, sizeof(temp), 0);
buffer[i] = temp;
printf("Data received from client !");
}
buffer[5] = '\0';
//connectToClient();

if(listen(serverSocket, 2) == -1){
printf("listen() error!\n");
exit(-1);
}
// printf("Listening at port %d for connection request...\n",MYPORT);

int length = sizeof(clientAddress);


if((clientSocket = accept(serverSocket, (struct sockaddr*)&clientAddress,
(socklen_t*)&length)) == -1){
printf("accept() error!\n");
exit(-1);
}
// printf("Connection request accepted from client #6!\n");

// printf("\n*** TCP connection established successfully! ***\n\n");

send(clientSocket, &buffer, sizeof(buffer), 0);


printf("String sent to 5th client!");
closeConnection();
return 0;
}

void connectToClient(){
if((serverSocket = socket(AF_INET, SOCK_STREAM, 0)) == -1){
printf("socket() error!\n");
exit(-1);
}
// printf("Socket created successfully!\n");
serverAddress.sin_family = AF_INET;
serverAddress.sin_port = htons(MYPORT);
serverAddress.sin_addr.s_addr = INADDR_ANY;

if(bind(serverSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress))


== -1){
printf("bind() error!\n");
exit(-1);
}
// printf("Socket binded successfully!\n");

return;
}

void closeConnection(){
close(serverSocket);
close(clientSocket);
// printf("\n*** Connection closed! ***\n\n");
return;
}

Output :

Packet tracer :

You might also like