简单的时间服务器程序

来源:互联网 发布:mac 终端查看当前用户 编辑:程序博客网 时间:2024/06/02 03:20

一、客户程序:

/*************************************************************************    > File Name: timecli.c    > Author:zsj    > Mail: 15623582731@163.com     > Created Time: 2017年08月06日 星期日 09时25分46秒 ************************************************************************/#include<unp.h>in t main(int argc,char **argv){ int sockfd,n; char recvline[MAXLINE+1]; struct sockaddr_in servaddr; if(argc!=2) {     err_quit("a.out <ip address>"); }if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0)   err_sys("SOCK error"); bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family=AF_INET; servaddr.sin_port=htons(13); if(inet_pton(AF_INET,argv[1],&servaddr.sin_addr)<=0)     err_quit("inet_pton error for %s",argv[1]);if(connect(sockfd,(SA*)&servaddr,sizeof(servaddr))<0)    err_sys("connect error"); while((n=read(sockfd,recvline,MAXLINE))>0) {   recvline[n]=0; if(fputs(recvline,stdout)==EOF)     err_sys("fputs error"); }if(n<0)err_sys("read error");exit(0);}

二、服务器程序:

/*************************************************************************    > File Name: timesrv.c    > Author: zsj    > Mail: ma6174@163.com     > Created Time: 2017年08月06日 星期日 09时03分21秒 ************************************************************************/#include<unp.h>#include<time.h>int main(int argc,char **argv){  int listenfd,confd;  struct sockaddr_in servaddr;  char buff[MAXLINE];  time_t ticks;  listenfd=Socket(AF_INET,SOCK_STREAM,0);  bzero(&servaddr,sizeof(servaddr));  servaddr.sin_family=AF_INET;  servaddr.sin_addr.s_addr=htonl(INADDR_ANY);  servaddr.sin_port=htonl(13);  Bind(listenfd,(SA*)&servaddr,sizeof(servaddr));  Listen(listenfd,LISTENQ);  for(; ;)  {    confd=Accept(listenfd,(SA*)NULL,NULL);    ticks=time(NULL);    snprintf(buff,sizeof(buff),"%.24s\r\n",ctime(&ticks));    Write(confd,buff,strlen(buff));    Close(confd);  }}

三、测试程序:

客户端:Restarting xinetd (via systemctl): xinetd.service.zsj@zsj-virtual-machine:~/unp/code$  ./timecli 127.0.0.106 AUG 2017 11:03:57 CST
原创粉丝点击