crabs_usbmgr-1.0.3 ©2004-2006 - Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)
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_connect( const char *serv, char *service, char *err ) 31 { 32 int fc ; 33 struct hostent * host ; 34 struct sockaddr_in svr ; 35 struct servent * sp ; 36 37 if ( (host = gethostbyname( serv )) == NULL ) 38 { 39 sprintf( err, "serv_connect:gethostbyname(%s):%s", serv, 40 strerror(errno) ) ; 41 return -1 ; 42 } 43 if ( (sp = getservbyname( service, "tcp" )) == NULL ) 44 { 45 sprintf( err, "serv_connect:getservbyname(%s):%s", service, 46 strerror(errno) ) ; 47 return -1 ; 48 } 49 50 svr.sin_port = sp->s_port ; 51 memcpy( &(svr.sin_addr.s_addr), (char *)host->h_addr, host->h_length ) ; 52 svr.sin_family = AF_INET ; 53 54 if ( (fc = socket( AF_INET, SOCK_STREAM, 0 )) == -1 ) 55 { 56 sprintf( err, "serv_connect:socket():%s", strerror(errno) ) ; 57 return -1 ; 58 } 59 if ( connect( fc, (struct sockaddr *)&svr, sizeof( svr ) ) == -1 ) 60 { 61 sprintf( err, "serv_connect:connect():%s", strerror(errno) ) ; 62 close(fc); 63 return -1 ; 64 } 65 return fc ; 66 }
Date de génération : 22/09/2011 21:48