Unix网络编程实践:时间获取客户程序
2017-11-12 20:48
225 查看
对于一个初学者来说,把多个头文件封装到unp.h不是很方便学习,遂扩展于此。
daytimetcpcli.c文件如下:
gcc daytimetcpcli.c -o daytimetcpcli
由于本地没有开启daytime服务,所以直接在网上找了一个,ip: 129.6.15.28 (啥?怎么找的?http://tf.nist.gov/tf-cgi/servers.cgi上多试几个)。
./daytimetcpcli 129.6.15.28
如果成功的话,应该是如下返回:
58069 17-11-12 12:25:03 00 0 0 922.8 UTC(NIST) *
daytimetcpcli.c文件如下:
#include <netinet/in.h> #include <stdio.h> #include <strings.h> #include <arpa/inet.h> #include <stdlib.h> #include <sys/socket.h> #include <sys/types.h> #include <unistd.h> #define MAXLINE 256 int main(int argc, char **argv) { int sockfd, n; char recvline[MAXLINE + 1]; struct sockaddr_in servaddr; if (argc != 2) { fprintf(stderr, "usage: %s <IPaddress>", argv[0]); exit(1); } if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { fprintf(stderr, "socket error"); exit(1); } bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(13); if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0) { fprintf(stderr, "inet_pton error fon %s", argv[1]); exit(1); } if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0) { fprintf(stderr, "connect error"); exit(1); } while ( (n = read(sockfd, recvline, MAXLINE)) > 0) { recvline = 0; if (fputs(recvline, stdout) == EOF) { fprintf(stderr, "fputs error"); 4000 exit(1); } } if (n < 0) { fprintf(stderr, "read error"); exit(1); } exit(0); }
gcc daytimetcpcli.c -o daytimetcpcli
由于本地没有开启daytime服务,所以直接在网上找了一个,ip: 129.6.15.28 (啥?怎么找的?http://tf.nist.gov/tf-cgi/servers.cgi上多试几个)。
./daytimetcpcli 129.6.15.28
如果成功的话,应该是如下返回:
58069 17-11-12 12:25:03 00 0 0 922.8 UTC(NIST) *
参考
UNIX网络编程(第3版)环境搭建——使用MAC OSX10.10相关文章推荐
- Unix/Linux环境C编程入门教程(22) C/C++如何获取程序的运行时间
- Unix/Linux环境C编程入门教程(22) C/C++如何获取程序的运行时间
- 简介(1)-概述、一个简单的时间获取客户程序
- 一个简单的时间获取客户程序
- UNIX网络编程 -- -- 一个简单的时间获取客户程序
- Unix网络编程实例:获取时间网络程序
- TCP的时间获取客户程序和时间获取服务器程序
- Unix网络编程:关于编译并测试TCP时间获取的客户程序
- UNIX网络编程1.5一个简单的时间获取服务器程序1.6客户服务器程序索引表
- unix网络基础-TCP时间获取客户程序
- 1.2 一个简单的时间获取客户程序
- UNIX网络编程——非阻塞connect:时间获取客户程序
- 1.简介 1.2简单的时间获取客户程序
- UNIX网络编程——非阻塞connect:时间获取客户程序
- 【unix网络编程】4-11显示客户IP地址和端口号的时间获取服务程序
- UINX 网络编程学习(2)--简单的时间获取客户程序
- UNIX网络编程——非阻塞connect:时间获取客户程序
- 读书笔记之 简单时间获取客户/服务程序
- Unix/Linux环境C编程新手教程(22) C/C++怎样获取程序的执行时间
- 应对某些外包客户的无理,限制使用时间,获取网络时间