0% found this document useful (0 votes)
26 views

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
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

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
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