1 #include <sys/types.h> /* predefined types */
2 #include <unistd.h> /* include unix standard library */
3 #include <arpa/inet.h> /* IP addresses conversion utililites */
4 #include <sys/socket.h> /* socket library */
5 #include <stdio.h> /* include standard I/O library */
8 int main(int argc, char *argv[])
12 struct sockaddr_in serv_add, client;
19 /* write daytime to client */
22 if ( (conn_fd = accept(list_fd, (struct sockaddr *)&client, &len))
24 perror("accept error");
27 /* fork to handle connection */
28 if ( (pid = fork()) < 0 ){
32 if (pid == 0) { /* child */
35 snprintf(buffer, sizeof(buffer), "%.24s\r\n", ctime(&timeval));
36 if ( (write(conn_fd, buffer, strlen(buffer))) < 0 ) {
37 perror("write error");
41 inet_ntop(AF_INET, &client.sin_addr, buffer, sizeof(buffer));
42 printf("Request from host %s, port %d\n", buffer,
43 ntohs(client.sin_port));
51 /* normal exit, never reached */