(unix网络编程)时间获取程序

来源:互联网 发布:java奇数偶数的和 编辑:程序博客网 时间:2024/06/06 07:43

服务器端代码如下:

#include <stdio.h> #include <stdlib.h>#include <string.h>#include <arpa/inet.h>#include <sys/types.h>#include <sys/socket.h>#include <time.h>#include <unistd.h>#include <errno.h>#define MAXLINE 4096#define LISTENQ 5int main(int argc, char **argv){int listenfd, connfd;struct sockaddr_in servaddr;char buff[MAXLINE];time_t ticks;if ((listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {printf("socket error\n");return -1;}memset(&servaddr, 0x00, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);servaddr.sin_port = htons(5000);if (bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0) {printf("bind error: %s\n", strerror(errno));return -1;}if (listen(listenfd, LISTENQ) < 0) {printf("listen error: %s\n", strerror(errno));return -1;}for (;;) {connfd = accept(listenfd, (struct sockaddr *)NULL, NULL);ticks = time(NULL);snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));if ((write(connfd, buff, strlen(buff))) < 0)printf("write error\n");if(close(connfd) < 0)printf("close error\n");}}

客户端代码如下:

#include <stdio.h>#include <string.h>#include <arpa/inet.h>#include <sys/types.h>#include <sys/socket.h>#include <errno.h>#include <unistd.h>#define MAXLINE 4096int main(int argc, char **argv){int sockfd, n;char recvline[MAXLINE + 1];struct sockaddr_in servaddr;if (argc != 2) {printf("usage: a.out <IPaddress>\n");return -1;}if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {printf("socket error\n");return -1;}memset(&servaddr, 0x00, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port = htons(5000);if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0) {printf("inet_pton error for %s\n", argv[1]);return -1;}if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0) {printf("connect error: %s\n", strerror(errno));return -1;}while ((n = read(sockfd, recvline, MAXLINE)) > 0) {recvline[n] = 0;if (fputs(recvline, stdout) == EOF)printf("fputs error\n");}if (n < 0)printf("read error\n");return 0;}

这个是最基本的网络编程的例子,后续所有的内容都是在这个基础上扩展来的

0 0
原创粉丝点击