Linux C 时间服务器
来源:互联网 发布:大华监控主机网络设置 编辑:程序博客网 时间:2024/06/07 06:55
<strong><span style="font-size:18px;">#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <stdlib.h>#include <time.h>#include <netdb.h>#include <string.h>#define PORTNUM 13000#define HOSTLEN 256#define oops(msg) {perror(msg);exit(1);}int main(int argc,char **argv){ struct sockaddr_in saddr; struct hostent *hp; char hostname[HOSTLEN]; int sock_id, sock_fd; FILE *sock_fp; time_t thetime; // 创建 socket 套接字 sock_id = socket(PF_INET,SOCK_STREAM,0); if(sock_id == -1) oops("socket") bzero((void *)&saddr,sizeof(saddr)); // 填充套接字 gethostname(hostname,HOSTLEN); //获取主机名 hp = gethostbyname(hostname); // 获取给定主机名的主机信息 printf("%s\n",hostname); bcopy((void *)hp->h_addr,(void *)&saddr.sin_addr,hp->h_length); saddr.sin_port = htons(PORTNUM); saddr.sin_family = AF_INET; // 绑定套接字 if(bind(sock_id,(struct sockaddr *)&saddr,sizeof(saddr)) != 0) oops("bind") //设在允许的最大连接数 if(listen(sock_id, 1) != 0) oops("listen") while(1){ // 等待客户端的请求链接 sock_fd = accept(sock_id,NULL,NULL); printf("Wow! got a call! \n"); if(sock_fd == -1) oops("accept") //文件描述符转换成文件指针 sock_fp = fdopen(sock_fd,"w"); if(sock_fp == NULL) oops("fdopen") // 获取时间,并将时间发送给客户端 thetime = time(NULL); fprintf(sock_fp,"The time here is .."); fprintf(sock_fp,"%s",ctime(&thetime)); fclose(sock_fp); }}</span></strong>
可以使用 telnet 命令测试。
telnet “HOSTNAME” 13000HOSTNAME 可以通过 linux 命令 hostname 获得
0 0
- Linux C 时间服务器
- linux配置时间服务器
- linux设置时间服务器
- linux设置时间服务器
- linux 更改服务器时间
- linux设置时间服务器
- 校准linux服务器时间
- linux 服务器时间函数
- Linux时间服务器配置
- Linux服务器时间同步
- linux架设时间服务器
- linux服务器时间修改
- Linux修改服务器时间
- Linux服务器时间同步
- Linux时间服务器配置
- linux服务器时间校对
- Linux配置时间服务器
- linux 时间服务器部署
- 加密解密java
- 安卓输入法布局修改
- 第十二周-图的广度优先遍历
- 第十周项目3 利用二叉树遍历思想解决问题(1)
- 第八周 项目3-4
- Linux C 时间服务器
- 第十一周 层次遍历算法的验证
- bootstrap-treeview 后台拼装JSON
- C++ 06装饰模式
- 第十二周项目(2):操作用邻接表存储的图
- Ubuntu14.04下安装Hadoop2.4.0 (单机模式)
- AngularJS
- Android软件加安全码
- HDOJ 2017 字符串统计