0% found this document useful (0 votes)
30 views4 pages

Timserver 1

This document contains code for a client-server program that uses UDP for communication. The server code initializes a socket, binds it to port 2000, and listens for incoming messages in a loop. It can handle "time" requests by sending the current time string back. Other messages get an "Unknown command" response. The client code also initializes a socket, sends messages to the server on port 2000, and prints any responses received.
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)
30 views4 pages

Timserver 1

This document contains code for a client-server program that uses UDP for communication. The server code initializes a socket, binds it to port 2000, and listens for incoming messages in a loop. It can handle "time" requests by sending the current time string back. Other messages get an "Unknown command" response. The client code also initializes a socket, sends messages to the server on port 2000, and prints any responses received.
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/ 4

//server

#include<stdio.h>
#include<string.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<fcntl.h>
#include<stdlib.h>
#include<time.h>

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


{
int n;
int sock_fd; int i,j,k;
int childpid;
char buffer[100];
time_t curtime;
struct sockaddr_in servaddr, cliaddr; int len = sizeof(cliaddr);
if((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{
printf("Cannot create socket\n");
}
bzero((char*)&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;

servaddr.sin_port = htons(2000);
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind(sock_fd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0)
{
perror("bind failed:");
}
while(1)
{
n = recvfrom(sock_fd,buffer , sizeof(buffer), 0, (struct sockaddr *)&cliaddr, &len);
buffer[n]='\0';
//printf("\n command received:%s", buffer);
puts("\n command received");puts(buffer);
if(strcmp(buffer,"time")==0)
{
time(&curtime);
sprintf( buffer, "= %s", ctime(&curtime));
n = sendto(sock_fd, buffer, sizeof(buffer),0, (struct sockaddr*)&cliaddr, sizeof(cliaddr));
if( n < 0)
{
perror("error in sending");
}
}
else {
strcpy(buffer,"Unknown command");
n = sendto(sock_fd, buffer, sizeof(buffer),0, (struct sockaddr*)&cliaddr, sizeof(cliaddr));
}

}
}
//client
#include<stdio.h>
#include<string.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<fcntl.h>
#include<stdlib.h>

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


{
int i,j,n;
int sock_fd;
char msg[20];
struct sockaddr_in servaddr; char buff[100];

if((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)


{
printf("Cannot create socket\n");
}
bzero((char*)&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET; servaddr.sin_port = htons(2000);
inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr);
while(1){
scanf("%s",msg);
n = sendto(sock_fd, msg,20,0, (struct sockaddr*)&servaddr, sizeof(servaddr));
if((n=recvfrom(sock_fd, buff, sizeof(buff),0, NULL, NULL)) == -1)
{
perror("read error from server:");
}
printf("%s\n", buff);
}
}

You might also like