#include <netdb.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <time.h>
#include <unistd.h>
#define PORT 11011
int main () {
struct sockaddr_in address, client_addr;
size_t client_addr_len = sizeof client_addr;
int sfd, fd; int optval = 1;
bzero(&address, sizeof(struct sockaddr_in));
address.sin_family = AF_INET;
address.sin_port = htons(PORT);
if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ||
setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR,
&optval, sizeof optval) < 0 ||
bind(sfd, (struct sockaddr *) &address,
sizeof(struct sockaddr_in)) < 0 ||
listen(sfd, SOMAXCONN) < 0) {
perror("socket"); exit(1);
}
while ((fd = accept(sfd, (struct sockaddr *) &client_addr,
&client_addr_len)) >= 0) {
char timebuf[32]; time_t clock; time(&clock);
ctime_r(&clock, timebuf, sizeof timebuf);
write(fd, timebuf, strlen(timebuf)); close(fd);
}
}
|