#include <sys/socket.h> #include <netinet/in.h> #include <assert.h> #include <stdio.h># Include <unistd.h> #include <stdlib.h> #include <errno.h> #include <string.h>int main () {const Char *ip= "127.0.0.1"; int port=12345; struct SOCKADDR_IN address; Bzero (&address,sizeof (address)); Address.sin_family=af_inet; Inet_pton (AF_INET,IP,&ADDRESS.SIN_ADDR); Address.sin_port=htons (port); int Sock=socket (pf_inet,sock_stream,0); ASSERT (sock>=0); int Ret=bind (sock, (struct sockaddr *) &address,sizeof (address)); Ret=listen (sock,5); struct SOCKADDR_IN client; socklen_t client_addrlength=sizeof (client); int connfd=accept (sock, (struct sockaddr *) &client,&client_addrlength); if (connfd<0) {printf ("Errorno os:%d\n", errno); } else {close (Stdout_fileno); DUP (CONNFD); printf ("abcd\n"); Close (CONNFD); } close (sock); return 0;}
How CGI servers work under Linux