/* * Create and bind a tcp socket for a server. * $Id$ * Copyright (c) 1997 by Tycho Softworks. * For conditions of distribution and reuse see product license. */ #include SOCKET tcpsocket(char *mask, int port, int backlog) { SOCKET so; struct sockaddr_in saddr; struct in_addr *aptr; so = socket(AF_INET, SOCK_STREAM, 0); if(so == INVALID_SOCKET) return so; memset(&saddr, 0, sizeof(saddr)); saddr.sin_family = AF_INET; saddr.sin_port = htons(port); aptr = getnetaddr(mask); if(!aptr) { endsocket(so); return INVALID_SOCKET; } saddr.sin_addr = *aptr; if(bind(so, (struct sockaddr *)&saddr, sizeof(saddr))) { endsocket(so); return INVALID_SOCKET; } if(listen(so, backlog)) { endsocket(so); return INVALID_SOCKET; } return so; }