网络程序课程设计---实现网络对时程序.doc

网络程序课程设计---实现网络对时程序.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课题名称: 实现网络对时程序 院 (系): 计算机工程学院 专 业: 通信工程 班 级: 学生姓名: 学 号: 指导教师: 2012年6月17日 目录 一、实验软件 3 二、设计内容 3 三、设计原理 4 四、设计过程 4 五、程序代码及测试分析 5 1、服务器: 5 2、客户端: 7 3、程序运行结果: 9 六、心得体会 11 七、参考文献 11 摘 要:本次课程设计以Visual C++ 6.0作为,复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力Visual C++ 6.0对网络编程的支持有socket支持,WinInet支持,MAPI和ISAPI支持等。其中,Windows Sockets API是TCP/IP网络环境里,也是Internet上进行开发最为通用的API。在TCP/IP网络通信环境下,Socket数据传输是一种特殊的I/O,它也相当于一种文件描述符,具有一个类似于打开文件的函数调用Socket()。可以这样理解:Socket实际上是一个通信端点,通过它,用户的Socket程序可以通过网络和其他的Socket应用程序通信。 二、设计内容 在局域网中有很多应用软件为了协同工作,需要保证客户机上时间统一,方法是客户机从一个时间相对正确的服务器读取时间,以此来校正本地时间。网络对时系统分服务器端程序和客户端程序。在服务器端程序需要达到以下功能:能够接收局域网中任一台客户机的对时请求并准确向客户机发送服务器端的时间和日期;客户端程序要达到以下功能:能够设定服务器的主机或者IP地址,能够接收服务器端发送的时间和日期信息并以此校正本地时间与服务器端的时间同步。 按照C/S模型设计一个网络对时服务系统,系统分为服务器端(server)和客户端(client)。服务器按照时间协议的要求(参考RFC-868),对发出对时请求的客户端,以TCP /I P的格式返回响应。客户端根据服务器端的返回值设计本地时间与服务器的时间同步。 三、设计原理 TCP/IP网络对时服务系统客户端和服务器原理主要分2个部分。服务器端创建套接监听字,并为它关联一个本地地址(指定IP地址和端口),然后进入监听状态准备接受客户的连接请求,为客户端的连接请求,服务器调用ACCEPT函数。客户端创建套接字即可调用CONENET函数试图连接服务器监听套接字,当服务器端的ACCEPT函数返回后,CONNECT函数也返回。此时客户端使用socket函数创建的套接字,双方就可以通信了。 服务器调用socket函数创建套接字server,调用bind绑定套接字到本地IP地址和端口,在端口监听并调用recvfrom函数接受客户端的对时请求,并调用sendto函数发送服务器时间到客户端,然后关闭套接字。客户端调用socket函数创建套接字client,调用sendto函数向服务器端发送对时请求,服务器端响应请求之后,客户端调用recvfrom函数从服务器端接收标准时间并设置本地时间与服务器端时间同步。 四、设计过程recvfrom函数接受客户端的对时请求,并调用sendto函数发送服务器时间到客户端,然后关闭服务器套接字server。客户端调用socket函数创建套接字client,然后调用sendto函数向服务器端发送对时请求,服务器端响应客户端的对时请求之后,调用sendto函数发送服务器时间到客户端,然后客户端调用recvfrom函数接收服务器端发送过来的响应,接收标准时间并设置本地时间与服务器端时间同步。 五、程序代码及测试分析 1、服务器: #pragma comment(lib,"ws2_32.lib") #include<winsock2.h> #include<stdio.h> #include<string.h> int main() { WSADATA wsadata; int err = WSAStartup(WINSOCK_VERSION,&wsadata); if(err != 0) { printf("WSAStartup() failed :%d\n",WSAGetLastError()); return -1; } SOCKET sock = socket(AF_INET,SOCK_STREAM,0); if(sock == INVALID_SOCKET) { printf

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档