zoukankan      html  css  js  c++  java
  • 作为守护进程运行的协议无关时间获取服务器程序

    #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
    ", ctime(&ticks));
            write(connfd, buff, strlen(buff));
    
            close(connfd);
        }
    }
  • 相关阅读:
    百度语音
    前端技术
    自动化测试
    分布式锁
    缓存穿透、缓存击穿、缓存雪崩
    延迟队列
    Arthas
    MyBatis配置文件容易引发的不容易发现的问题(驼峰式命名)
    JUnit使用中遇到的问题
    使用ArrayList<E>遇到的数据重复问题
  • 原文地址:https://www.cnblogs.com/soldierback/p/10755650.html
Copyright © 2011-2022 走看看