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

Lab3 CN1

The document describes a client-server program for socket programming. The server program binds to a port, listens for connections, and sends the current date and time to any connected clients. The client program connects to the server, receives the date/time, and prints it. The code provided implements this by creating sockets, binding addresses, connecting, reading/writing socket data, and includes functions for both the server and client programs.

Uploaded by

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

Lab3 CN1

The document describes a client-server program for socket programming. The server program binds to a port, listens for connections, and sends the current date and time to any connected clients. The client program connects to the server, receives the date/time, and prints it. The code provided implements this by creating sockets, binding addresses, connecting, reading/writing socket data, and includes functions for both the server and client programs.

Uploaded by

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

LAB-3

AIM: Implement a Socket Programming for Client – Server model


ALGORITHM:
SERVER
STEP 1: Start the program.
STEP 2: Declare the variables and structure for the socket.
STEP 3: The socket is binded at the specified port.
STEP 4: Using the object the port and address are declared.
STEP 5: The listen and accept functions are executed.
STEP 6: If the binding is successful it waits for client request.
STEP 7: Execute the client program.

CLIENT
STEP 1: Start the program.
STEP 2: Declare the variables and structure.
STEP 3: Socket us created and connect function is executed.
STEP 4: If the connection is successful then server sends the message.
STEP 5: The date and time is printed at the client side.
STEP 6: Stop the program.

CODE:
server.c :
#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>
#include <errno.h>

#include <string.h>

#include <sys/types.h>

#include <time.h>

int main(int argc, char *argv[])

int listenfd = 0, connfd = 0;

struct sockaddr_in serv_addr;

char sendBuff[1025];

time_t ticks;

listenfd = socket(AF_INET, SOCK_STREAM, 0);

memset(&serv_addr, '0', sizeof(serv_addr));

memset(sendBuff, '0', sizeof(sendBuff));

serv_addr.sin_family = AF_INET;

serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);

serv_addr.sin_port = htons(5000);

bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr));

listen(listenfd, 10);

while(1)

connfd = accept(listenfd, (struct sockaddr*)NULL, NULL);

ticks = time(NULL);

snprintf(sendBuff, sizeof(sendBuff), "%.24s\r\n", ctime(&ticks));

write(connfd, sendBuff, strlen(sendBuff));

close(connfd);

sleep(1);

}
client.c :
#include <sys/socket.h>

#include <sys/types.h>

#include <netinet/in.h>

#include <netdb.h>

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <unistd.h>

#include <errno.h>

#include <arpa/inet.h>

int main(int argc, char *argv[])

int sockfd = 0, n = 0;

char recvBuff[1024];

struct sockaddr_in serv_addr;

if(argc != 2)

printf("\n Usage: %s <ip of server> \n",argv[0]);

return 1;

memset(recvBuff, '0',sizeof(recvBuff));

if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)

printf("\n Error : Could not create socket \n");

return 1;

memset(&serv_addr, '0', sizeof(serv_addr));

serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(5000);

if(inet_pton(AF_INET, argv[1], &serv_addr.sin_addr)<=0)

printf("\n inet_pton error occured\n");

return 1;

if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)

printf("\n Error : Connect Failed \n");

return 1;

while ( (n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0)

recvBuff[n] = 0;

if(fputs(recvBuff, stdout) == EOF)

printf("\n Error : Fputs error\n");

if(n < 0)

printf("\n Read error \n");

return 0;

}
Output:

NAME: DIKSHA NASA

REG. No. RA1911042010003

CSBS- R1

***********************************************************************************************

You might also like