1 / 12
文档名称:

用Socket套接字实现DAYTIME协议的服务器和客户端程序.docx

格式:docx   大小:314KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用Socket套接字实现DAYTIME协议的服务器和客户端程序.docx

上传人:cengwaifai1314 2019/9/13 文件大小:314 KB

下载得到文件列表

用Socket套接字实现DAYTIME协议的服务器和客户端程序.docx

相关文档

文档介绍

文档介绍:1、设计目的为了提高同学的自主动手能力,把理论知识运用于实践中,、 I/O 程序设计:用 Socket 套接字实现 DAYTIME 协议的服务器和客户端程序1. DAYTIME 服务器程序 daytime_s服务器程序创建一个 TCP 或 UDP 套接字,监听端口号 13 号 端口。在收到客户端程序的连接后,将服务器的本地时间以 ASCII 码形式发送到客户端。然后继续等待下一个客户端的连接。2. DAYTIME 客户端程序 daytime_c客户端程序创建一个 TCP 或 UDP 套接字,连接服务器的 13 号端口。在接收到服务器发送的日期时间信息后,将其打印到屏幕上,退出。客户端运行时需要指定服务器的 IP 地址。所以客户端程序需要首先读取命令行中的 IP 地址参数。()bind()listen()accept()blocks until server receivesa connect request from clientrecv()send()close()connect negotiationdatadataClientsocket()connect()send()recv()close()3、 定义类型定义了五个字符型变量、三个整型和一个结构体变量。 用到的主要函数Socket  主函数void main(){定义变量while (1){if (设置“TCP 或者 UDP”){if (ssock < 0){}}else{if(n<0) { }}if (strcmp(transport, "tcp") == 0){ }else{ }}closesocket(msock);#if defined WIN32WSACleanup();#endif}4、详细设计程序代码如下:1. DAYTIME 客户端程序 daytime_c#include<>#include <>#include""#include ""#ment (lib,"ws2_32")#defineLINELEN 128void main(){char *a[100];char *host=a;struct sockaddr_in sin; /* the from address of a client*/int s;char *service = "13"; /* 端口号 */char *transport = "tcp";/*"tcp" or "udp"*/char buf[LINELEN+1]; /* buffer for one line of text */int n; /* socket, 读入计数*/int alen;#if defined WIN32WSADATA wsadata;WSAStartup(1, &wsadata);#endifprintf("请输入服务器的 IP 地址:");scanf("%s\n",a);printf("显示当前时间:\n");s = connectsock(host, service, transport);if(s < 0)return;if (strcmp(transport, "tcp") == 0){while( (n = recv(s, buf, LINELEN, 0)) > 0){buf[n] = '\0'; /* ensure null-terminated, 定义buf[LINELEN+1]而不是 buf[LINELEN]是为了避免 buffer overflow*/fputs(buf, stdout);}}else{sendto(s, "Get Time", 8, 0, (struct sockaddr *) &sin, sizeof(sin));alen = sizeof(sin);n = recvfrom(s, buf, LINELEN, 0, (struct sockaddr *) &sin,&alen);buf[n] = '\0';fputs(buf, stdout);}closesocket(s);#if defined WIN32WSACleanup();#endif}2. DAYTIME 客户端程序 daytime_c#include<>#include<>#include<>#include ""#include ""#ment (lib,"ws2_32")#