7 #include <sys/socket.h>
12 int main(int argc
, char *argv
[])
17 int err
, len
, listenfd
, connfd
;
18 struct sockaddr_in servaddr
, cliaddr
;
20 listenfd
= socket(AF_INET
, SOCK_STREAM
, 0);
26 memset(&servaddr
, 0, sizeof(servaddr
));
27 servaddr
.sin_family
= AF_INET
;
28 servaddr
.sin_addr
.s_addr
= htonl(INADDR_ANY
);
29 servaddr
.sin_port
= htons(13);
31 err
= bind(listenfd
, (struct sockaddr
*) &servaddr
, sizeof(servaddr
));
37 err
= listen(listenfd
, 3);
44 len
= sizeof(cliaddr
);
45 connfd
= accept(listenfd
, (struct sockaddr
*) &cliaddr
, &len
);
50 printf("connection from %s, port %d\n",
51 inet_ntop(AF_INET
, &cliaddr
.sin_addr
, buf
, sizeof(buf
)),
52 ntohs(cliaddr
.sin_port
));
55 memset(buf
, '\0', sizeof(buf
));
56 snprintf(buf
, sizeof(buf
), "%.24s", ctime(&ticks
));
57 printf("%s: Handling a connection\n", buf
);
59 memset(buf
, '\0', sizeof(buf
));
60 snprintf(buf
, sizeof(buf
), "%.24s\r\n", ctime(&ticks
));
61 ret
= write(connfd
, buf
, strlen(buf
));
62 if (ret
!= strlen(buf
)) {