Universal Serial Bus MaNaGer

crabs_usbmgr-1.0.3 ©2004-2006 - Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)

libslw_inet.a~~ / INET / serv_tcp_simple.c
Makefile syssock.h daemon.c serv_tcp_simple.c serv_connect.c sock_read.c sock_write.c
    1 /*
    2 **=============================================================================
    3 ** crabs_usbmgr-1.0.3 : Universal Serial Bus MaNaGer
    4 ** Copyright (C) 2004-2006 : Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)
    5 **
    6 ** Ce source fait partie d'un projet logiciel libre. Vous pouvez le distribuer
    7 ** et/ou le modifier en respectant les termes de la GNU General Public License
    8 ** version 2 ou (suite a votre propre choix) une version ulterieure.
    9 **
   10 ** Ce programme est distribue dans l'espoir qu'il puisse etre utile, mais
   11 ** sans aucune garantie, meme si il est associe a un produit qui vous en
   12 ** propose une. Conformez-vous a la GNU General Public License pour avoir
   13 ** plus de precisions.
   14 **
   15 ** L'auteur ne peut etre tenu responsable de l'utilisation faite des
   16 ** composantes associees a ce projet (en partie ou dans leur totalite).
   17 **
   18 ** Une copie du fichier de la GNU GPL est fournie dans le repertoire DOC
   19 ** de ce projet sous le nom gnu_gpl.txt
   20 **
   21 **=============================================================================
   22 */
   23 #include <sys/types.h>
   24 #include <sys/socket.h>
   25 #include <netdb.h>
   26 #include <netinet/in.h>
   27 #include <errno.h>
   28 #include <string.h>
   29 
   30 int serv_tcp_simple( const char *service, char *err )
   31     {
   32     int                 sa      ;
   33     char                on  [4] ;
   34     struct  sockaddr_in svr     ;
   35     struct  servent *   sp      ;
   36 
   37     if ( ! ( sp = getservbyname( service, "tcp" ) ) )
   38         {
   39         sprintf( err, "serv_tcp_simple:getservbyname(%s):%s", service,
   40             strerror(errno) ) ;
   41         return -1 ;
   42         }
   43 
   44     svr.sin_port = sp->s_port ;
   45     svr.sin_addr.s_addr = INADDR_ANY ;
   46     svr.sin_family = AF_INET ;
   47 
   48     if ( (sa = socket ( AF_INET, SOCK_STREAM, 0 ) ) == -1 )
   49         {
   50         sprintf( err, "serv_tcp_simple:socket():%s", strerror(errno) ) ;
   51         return -1 ;
   52         }
   53 
   54     memset( on, 0, 4 ) ; on[3] = 1 ;
   55     if ( setsockopt(sa, SOL_SOCKET, SO_REUSEADDR, on, 4) == -1 )
   56         {
   57         sprintf( err, "serv_tcp_simple:sockopt():%s", strerror(errno) );
   58         return -1 ;
   59         }
   60     if ( bind ( sa, (struct sockaddr*)&svr, sizeof(svr) ) == -1 )
   61         {
   62         sprintf( err, "serv_tcp_simple:bind():%s", strerror(errno) ) ;
   63         return -1 ;
   64         }
   65     if ( listen ( sa, 5 ) == -1 )
   66         {
   67         sprintf( err, "serv_tcp_simple:listen():%s", strerror(errno) ) ;
   68         return -1 ;
   69         }
   70     return sa ;
   71     }
   72 
Makefile syssock.h daemon.c serv_tcp_simple.c serv_connect.c sock_read.c sock_write.c
libslw_inet.a~~ / INET / serv_tcp_simple.c

Haut de page

Contacter crabs

Date de génération : 22/09/2011 21:48