码迷,mamicode.com
首页 > 系统相关 > 详细

作为守护进程运行的协议无关时间获取服务器程序

时间:2019-04-23 12:25:58      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:line   add   write   协议   malloc   max   accept   color   void   

#include    <time.h>
#include    <stdio.h>
#include    <stdlib.h>
#include    <string.h>
#include    <unistd.h> 
#include    <sys/socket.h>

#define     MAXLINE     4096

int daemon_init(const char *, int);
int tcp_listen(const char *, const char *, socklen_t *);
char *sock_ntop(const struct sockaddr *, socklen_t);
void err_msg(const char *, ...);
void err_quit(const char *, ...);

int main(int argc, char **argv)
{
    int listenfd, connfd;
    socklen_t addrlen, len;
    struct sockaddr    *cliaddr;
    char buff[MAXLINE];
    time_t ticks;

    if (argc < 2 || argc > 3) {
        err_quit("usage: %s [ <host> ] <service or port>", argv[0]);
    }

    daemon_init(argv[0], 0);

    if (argc == 2) {
        listenfd = tcp_listen(NULL, argv[1], &addrlen);
    } else {
        listenfd = tcp_listen(argv[1], argv[2], &addrlen);
    }

    cliaddr = malloc(addrlen);

    for ( ; ; ) {
        len = addrlen;
        connfd = accept(listenfd, cliaddr, &len);
        err_msg("connection from %s", sock_ntop(cliaddr, len));

        ticks = time(NULL);
        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
        write(connfd, buff, strlen(buff));

        close(connfd);
    }
}

 

作为守护进程运行的协议无关时间获取服务器程序

标签:line   add   write   协议   malloc   max   accept   color   void   

原文地址:https://www.cnblogs.com/soldierback/p/10755650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!