时间同步C代码

时间同步C代码

ID:37819309

大小:831.36 KB

页数:8页

时间:2019-05-31

时间同步C代码_第1页
时间同步C代码_第2页
时间同步C代码_第3页
时间同步C代码_第4页
时间同步C代码_第5页
资源描述:

《时间同步C代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、网络高级编程时间同步实验报告09012136李盼辉May14,20151实实实验验验目目目的的的1.了解使用socket进行网络链接的方法;2.使用TCP协议实现Datetime协议的简单实现;3.修改Datatime协议实现client端与server端时间同步;2实实实验验验环环环境境境ubuntu12.043实实实验验验内内内容容容及及及设设设计计计1.实实实验验验一一一仿照例程编写Datetime协议的client端与server端程序实验分析:Datetime协议,使用TCP协议,通过13号端口获取服务器时间;client端主动建立TCP连接,并监听通

2、道,准备接受server端发来的时间信息;server端循环监听13号端口,在收到client端的连接请求后,建立连接,向client端发送服务器当前时间,关闭连接;实实实验验验一一一代代代码码码Datetimeclient#include"unp.h"#includevoiderrquit(constchar*fmt,...)f1printf("%snn",fmt);printf("errnois:%dnn",errno);exit(0);gintmain(intargc,char**argv)fintn,sockfd;charbu [201];

3、structsockaddrinservaddr;if(argc!=2)errquit("usage:a.out");if((sockfd=socket(AFINET,SOCKSTREAM,0))<0)errquit("sockterror");bzero(&servaddr,sizeof(servaddr));servaddr.sinfamily=AFINET;servaddr.sinport=htons(13);if(inetpton(AFINET,argv[1],&servaddr.sinaddr)<0)errquit("inetptone

4、rrorfor%s",argv[1]);if(connect(sockfd,(SA*)&servaddr,sizeof(servaddr))<0)errquit("connecterror");while((n=read(sockfd,bu ,2000))>0)fbu [n]=0;if(fputs(bu ,stdout)==EOF)errquit("fputserror");gif(n<0)errquit("readerror");exit(0);gDatetimeserver#include"unp.h"#include#include

5、ime.h>intmain(intargc,char**argv)fintlisid,connfd;structsockaddrinservaddr;charbu [2000];timettick;lisid=socket(AFINET,SOCKSTREAM,0);bzero(&servaddr,sizeof(sockaddrin));2servaddr.sinfamily=AFINET;servaddr.sinaddr.saddr=htonl(INADDRANY);servaddr.sinport=htons(13);bind(lisid,(SA*)&servad

6、dr,sizeof(sockaddrin));listen(lisid,LISTENQ);for(;;)fconnfd=accept(lisid,(SA*)NULL,NULL);tick=time(NULL);snprintf(bu ,sizeof(bu ),"%ld",tick);sleep(2);write(connfd,bu ,strlen(bu ));close(connfd);gg2.实实实验验验二二二修改实验一中的程序使其变为时间同步程序实验分析:时间同步的目的是使client端的时间与serevr端时间同步;通过Datetime协议,client端可以

7、获得server端返回的时间信息;a.当网络状态良好,通信时间极短(<1ms)可以忽略时,server端返回的时间信息即为client端接受到信息时server端的时间;b.当网络通信时间不可时,server端返回的时间信息需加上从server端到client端TCP数据报的单程传递时间,才为server端的实时时间;本实验主要针对b情况;client更改时间=server端返回时间+单程传递时间(RTT/2)server端返回时间可以通过Datetime协议获得;单程传递时间可由下式获得:client端接受到server端返回信息时的时间-client端发出T

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。