#include <netdb.h> //getprotobyname
#include <sys/types.h> //socket, setsocketopt
#include <sys/socket.h> //socket, setsocketopt

int               port;
struct protoent * proto;
int               Socket;
int               Switch;

proto = getprotobyname('tcp');
port  = 1;


/*check for error (-1) */ Socket = socket(PF_INET, SOCK_STREAM, proto->p_proto);
Switch = 1;
/*check fo error*/ setsockopt(Socket, SOL_SOCKET, SO_REUSERADDR, Switch, sizeof(int));
bind(Socket, sockaddr_in(


/////////////////////////////////////////
  struct protoent *tcpproto;
  int              tcp      = -1;
 
 
  if ((tcpproto = getprotobyname("tcp")) != NULL)
    tcp = tcpproto->p_proto;

  lfd = socket(PF_INET, SOCK_STREAM, 0);
  saddr.sin_family      = AF_INET;
  saddr.sin_addr.s_addr = htonl(INADDR_ANY);
  saddr.sin_port        = htons(port);

  if (lfd < 0)
    syserr("socket"); 
  on = 1;

  setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(int));
  if (bind(lfd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0)
    syserr("bind");

  listen(lfd, SOMAXCONN);


for  ($waitedpid = 0;
     ($paddr = accept(lfd, (struct sockaddr *)&saddr, &slen)) || $waitedpid;
     $waitedpid = 0, close Client)
{










