#include <time.h> #include "../lib/unpsunyj.h" // Daytime server that prints client IP address and port int main(int argc, char **argv) { int listenfd; int connfd; socklen_t len; struct sockaddr_in servaddr; struct sockaddr_in cliaddr; // 它将存放客户的协议地址 char buff[MAXLINE]; time_t ticks; // listenfd = Socket(AF_INET, SOCK_STREAM, 0); if ((listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) err_sys("socket error"); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(13); /* daytime server */ //Bind(listenfd, (SA *) &servaddr, sizeof(servaddr)); if (bind(listenfd, (sockaddr*)&servaddr, sizeof(servaddr)) < 0) { err_sys("bind error"); } // Listen(listenfd, LISTENQ); if (listen(listenfd, LISTENQ) < 0) { err_sys("listen error"); } for ( ; ; ) { len = sizeof(cliaddr); // connfd = Accept(listenfd, (SA *) &cliaddr, &len); again: if ((connfd = accept(listenfd, (sockaddr*)&cliaddr, &len)) < 0) { #ifdef EPROTO if (errno == EPROTO || errno == ECONNABORTED) #else if (errno == ECONNABORTED) #endif goto again; else err_sys("accept error"); } const char *ptr; if ((ptr = inet_ntop(AF_INET, &cliaddr.sin_addr, buff, sizeof(buff))) == NULL) err_sys("inet_ntop error"); /* sets errno */ printf("connection from %s, port %d ", // Inet_ntop(AF_INET, &cliaddr.sin_addr, buff, sizeof(buff)), ptr, ntohs(cliaddr.sin_port)); ticks = time(NULL); snprintf(buff, sizeof(buff), "%.24s ", ctime(&ticks)); // Write(connfd, buff, strlen(buff)); int length = strlen(buff); if (write(connfd, buff, length) != length) { err_sys("write error"); } // Close(connfd); if (close(connfd) == -1) { err_sys("close error"); } } }




![]I%UBZ(_4UNMXF`3X6@Y}3W ]I%UBZ(_4UNMXF`3X6@Y}3W](http://images0.cnblogs.com/blog/405501/201503/151706296998285.png)

![OBD)W_CI`]B0]~@[O(M`_{U OBD)W_CI`]B0]~@[O(M`_{U](http://images0.cnblogs.com/blog/405501/201503/151706360279118.png)


![_SBAIPR]65R1XR)0{{Q$YZE _SBAIPR]65R1XR)0{{Q$YZE](http://images0.cnblogs.com/blog/405501/201503/151706447777125.png)
![I])STCIFH`GTB@}D]]C]](J I])STCIFH`GTB@}D]]C]](J](http://images0.cnblogs.com/blog/405501/201503/151706476674141.png)




































