2.通过tcp提供daytime服务

来源:互联网 发布:电脑相册制作软件 编辑:程序博客网 时间:2024/05/17 01:00

一个提供daytime服务的简单tcp服务端

#include <sys/socket.h>#include <sys/types.h>#include <arpa/inet.h>#include <stdio.h>#include <time.h>#define MAXLINE 4096int main(int argc, char **argv){    int listenfd, connfd;    struct sockaddr_in servaddr;    char buff[MAXLINE];    time_t ticks;    // socket函数创建了一个网际(AF_INET)字节流(SOCK_STREAM)套接字    listenfd = socket(AF_INET, SOCK_STREAM, 0);    // 设置套接字地址结构的地址族、IP地址和端口    memset(&servaddr, 0, sizeof(servaddr));    servaddr.sin_family = AF_INET;    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);    servaddr.sin_port = htons(13);    // bind函数绑定地址结构到创建的套接字    bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr));    // listen函数把该套接字转换成一个监听套接字    // 1024指定系统内核允许在这个监听描述符上排队的最大客户连接数    listen(listenfd, 1024);        for ( ; ; )    {        // 阻塞在accept函数上, 等待客户进行连接        // 当连接建立后, 返回一个已连接描述符        connfd = accept(listenfd, NULL, NULL);        // 获取当前时间, 并转换为直观可读的时间格式        ticks = time(NULL);        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));        // 把时间发送给客户, 然后关闭当前连接        write(connfd, buff, strlen(buff));        close(connfd);    }    close(listenfd);}



原创粉丝点击