用Socket套接字实现DAYTIME协议的服务器和客户端程序样本.doc_第1页
用Socket套接字实现DAYTIME协议的服务器和客户端程序样本.doc_第2页
用Socket套接字实现DAYTIME协议的服务器和客户端程序样本.doc_第3页
用Socket套接字实现DAYTIME协议的服务器和客户端程序样本.doc_第4页
用Socket套接字实现DAYTIME协议的服务器和客户端程序样本.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用Socket套接字实现DAYTIME协议的服务器和客户端程序样本 用用t Socket套接字实现E DAYTIME协议的服务器和客户端程序本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 一、设计目的为了提高同学的自主动手能力,把理论知识运用于实践中,从实践中更好的领悟所学的知识. 二、题目要求及需求分析:用用Socket套接字实现DAYTIME协议的服务器和客户端程序序11E DAYTIME服务器程序daytime_s服务器程序创建一个P TCP或或P UDP套接字,监听端口号313号端口。 在收到客户端程序的连接后,将服务器的本地时间以I ASCII码形式发送到客户端。 然后继续等待下一个客户端的连接。 22E DAYTIME客户端程序daytime_c客户端程序创建一个P TCP或或P UDP套接字,连接服务器的313号端口。 在接收到服务器发送的日期时间信息后,将其打印到屏幕上,退出。 客户端运行时需要指定服务器的P IP地址。 所以客户端程序需要首先读取命令行中的P IP地址参数。 本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 三、概要设计定义了五个字符型变量、三个整型和一个结构体变量。 t Socket提供的系统调用或函数socket(bind(listen(recv(close()socket(connect(recv(send(close()blocks untilserver receivesa connectrequest fromclient datdat ServerClient aept(send()connect negotiation本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 主函数voi dmain()定义变量while (1)if(设置“P TCP或者UDP”)本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 if(ssock0)elseif(n0)if(strcmp(transport,tcp)=0)elseclosesocket(msock);#if defined WIN32WSACleanup();#endif 四、详细设计程序代码如下:1.E DAYTIME客户端程序daytime_c#include#include#include#include#pragma ment(lib,ws2_32)#define LINELEN128本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 void main()char*a100;char*host=a;struct sockaddr_in sin;/*the fromaddress ofa client*/int s;char*service=13;/*端口号*/char*transport=tcp;/*tcporudp*/char bufLINELEN+1;/*buffer forone lineof text*/int n;/*socket,读入计数*/int alen;#if definedWIN32WSADATA wsadata;WSAStartup(1,&wsadata);#endif printf(请输入服务器的IP地址:);scanf(%sn,a);printf(显示当前时间:n);s=connectsock(host,service,transport);if(s0)bufn=0;/*ensure null-terminated,定义bufLINELEN+1而不是bufLINELEN是为了避免buffer overflow*/fputs(buf,stdout);elsesendto(s,Get Time,8,0,(struct sockaddr*)&sin,sizeof(sin);alen=sizeof(sin);n=recvfrom(s,buf,LINELEN,0,(struct sockaddr*)&sin,&alen);bufn=0;fputs(buf,stdout);closesocket(s);#if definedWIN32本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 WSACleanup();#endif2.E DAYTIME客户端程序daytime_c#include#include#include#include#include#pragma ment(lib,ws2_32)#define QLEN32#define MAX_MSG100void main()char*host=;struct sockaddr_in csin;/*客服端地址*/int msock,ssock;/*master&slave sockets*/int alen;char*service=13;/*端口*/char*transport=tcp;/*tcporudp*/time_t now;/*当前时间*/char*pts;/*pointer totime string*/本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 char msgMAX_MSG;int n;#if definedWIN32WSADATA wsadata;WSAStartup(2,&wsadata);#endif msock=passivesock(service,transport,QLEN);printf(wait forrequ estsfor service:%sn,service);while (1)if(strcmp(transport,tcp)=0)alen=sizeof(csin);ssock=aept(msock,(struct sockaddr*)&csin,&alen);if(ssock0)printf(aept failedn);break;else本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 alen=sizeof(csin);n=recvfrom(msock,msg,MAX_MSG,0,(struct sockaddr*)&csin,&alen);if(n0)printf(aept failed);break;time(&now);pts=ctime(&now);if(strcmp(transport,tcp)=0)send(ssock,pts,strlen(pts),0);closesocket(ssock);elsealen=sizeof(csin);sendto(msock,pts,strlen(pts),0,(struct sockaddr*)&csin,alen);closesocket(msock);#if definedWIN32本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 WSACleanup();#endif 五、调试分析打开服务器端,等待客服端建立连接服务器程序创建一个P TCP套接字,监听端口号313号端口。 打开客户端准备连接服务器端本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 客户端程序创建一个P TCP或或P UDP套接字,连接服务器的313号端口。 客户端运行时需要指定服务器的P IP地址。 所以客户端程序需要首先读取命令行中的P IP地址参数。 输入服务器端的本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 在收到客户端程序的连接后,将服务器的本地时间以I ASCII码形式发送到客户端。 然后继续等待下一个客户端的连接。 在接收到服务器发送的日期时间信息后,将其打印到屏幕上,退出。 六、设计总结本次实验在设计前期遇到了很多的问题,首先,是C C语言的基础

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论