SERVER
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/fcntl.h>
#include<time.h>
#include<stdio.h>
int main()
{
int s,b,l,a,i;
char buf[50],buf1[50],ch[3],*p;
time_t t;
struct sockaddr_in myaddr,my1;
s=socket(AF_INET,SOCK_DGRAM,0);
if(s>-1)
printf("\nsocket() success");
else
printf("\nsocket() failure");
myaddr.sin_port=htons(9999);
myaddr.sin_addr.s_addr=INADDR_ANY;
myaddr.sin_family=AF_INET;
b=bind(s,(struct sockaddr *)&myaddr,sizeof myaddr);
if(b>-1)
printf("\nbind() success");
else
printf("\nbind() failure");
i=sizeof(my1);
recvfrom(s,buf,sizeof buf,0,(struct sockaddr *)&my1,&i);
if(strcmp(buf,"time")==0)
{
time(&t);
p=ctime(&t);
sendto(s,p,100,0,(struct sockaddr *)&my1,sizeof my1);
printf("\ntime sent success\n");
}
else
{
printf("\nerror request");
sendto(s,"error request",25,0,(struct sockaddr *)&my1,sizeof my1);
}
}
CLIENT
#include<sys/socket.h>
#include<unistd.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<time.h>
#include<stdio.h>
int main()
{
int s,c,i,j=1;
char buf[50],buf1[50],ch[3];
time_t t;
struct sockaddr_in servaddr,ser1;
s=socket(AF_INET,SOCK_DGRAM,0);
if(s>-1)
printf("\nsocket() success");
else
printf("\nsocket() failure");
servaddr.sin_port=htons(9999);
servaddr.sin_family=AF_INET;
inet_pton(AF_INET,"127.0.0.1",&servaddr.sin_addr.s_addr);
c=connect(s,(struct sockaddr *)&servaddr,sizeof servaddr);
if(c>-1)
{
printf("\nconnect() success");
printf("\nCLIENT:");
scanf("%s",buf);
sendto(s,buf,sizeof buf,0,(struct sockaddr *)&servaddr,sizeof servaddr);
j=sizeof(ser1);
recvfrom(s,buf1,sizeof buf1,0,(struct sockaddr *)&ser1,&j);
printf("\nmessage from server:%s",buf1);
}
else
printf("\nconnect() failure");
}
OUTPUT
SERVER SIDE
$ cc udptimeserver.c
$ ./a.out
socket() success
bind() success
time sent success
$
CLIENT SIDE
$ cc udptimeclient.c
$ ./a.out
socket() success
connect() success
CLIENT: time
message from server:Tue Mar 22 21:43:26 2011
$
Comments
Post a Comment