Newer
Older
gnyognyo / gnyoserv.c
@yuuji yuuji on 30 Jan 1995 1 KB Initial revision
#include "gnyoserv.h"
static int sofd, newsofd;
/* $Id$ */

main(int argc, char *argv[])
{
    char hostname[MAXHOSTNAMELEN];
    static struct hostent *host;
    static struct sockaddr_in servaddr, cliaddr;
    sofd = socket(AF_INET, SOCK_STREAM, 0);
    if (sofd < 0) error("Failed to open socket");
    if (gethostname(hostname, MAXHOSTNAMELEN) < 0)
      error("Couldn't get hostname");
    if (0 == (host = gethostbyname(hostname)))
      error("Couldn't get host id");
    memset((char*)&servaddr, 0, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = INADDR_ANY;
    servaddr.sin_port = htons(GNYOPORT);
    memcpy((char*)&servaddr.sin_addr, (char*)host->h_addr, host->h_length);

    if (bind(sofd, &servaddr, sizeof(servaddr)) < 0)
      error("Failed to bind");

    if (listen(sofd, 5) == -1) error("Failed to listen");

    /* connection request */
    while (1) {
        int cliaddrlen;
        cliaddrlen = sizeof(cliaddr);
        if ((newsofd = accept(sofd, &cliaddr, &cliaddrlen)) < 0)
          error("Couldn't accept");
        
    }
}