标签:vs code [1] 网络 好好学习 nec ror 获取 sock etc
书买很久了,好好学习下.O(∩_∩)O 只写程序,原理什么的,先不写了.
deepin15.4.1 64位
vs code
gcc version 6.4.0 20170724 (Debian 6.4.0-2)
虚拟机里跑的 没在物理机安装
/** * TCP_getDayTime.c * 安装时间服务 * sudo apt-get install xinetd -y * * 修改yes 为 no * sudo vi /etc/xinetd.d/daytime * * 重启服务 * /etc/init.d/xinetd restart * 服务是否正确 * nc 127.0.0.1 13 * * * 编译 gcc TCP_getDayTime.c -o TCP_getDayTime * 运行 ./TCP_getDayTime 127.0.0.1 * */ #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <errno.h> /*错误处理*/ void err_exit(char * err){ printf("\n---error at %s---- \n",err); exit(errno); } int main(int argc, char ** argv) { int sockfd, n; char recvline[1024 + 1]; struct sockaddr_in servaddr; if (argc < 2) { err_exit("argc < 2"); } 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) { err_exit("inet_pton()"); } if ((sockfd = socket(AF_INET, SOCK_STREAM, 0) ) <0) { err_exit("socket()"); } if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(struct sockaddr))<0) { err_exit("connect()"); } while ((n = read(sockfd, recvline, 1024)) > 0) { recvline[n]=0;/* 0==‘0‘ */ if(fputs(recvline, stdout)==EOF){ err_exit("fputs()"); } if(n<0){ err_exit("n<0"); } } return 0; }
标签:vs code [1] 网络 好好学习 nec ror 获取 sock etc
原文地址:http://www.cnblogs.com/startnow/p/7860126.html