Connection d'un client TCP/IP

Portrait de trax
#define TRUE 1
#define FALSE 0
/**
 * \fn BOOL sockConnect (char *addr, int port, int *socketID)
 * \brief create and connect a socket to a given address/port
 * \param addr address to connecto on
 * \param port port to connect on
 * \param socketID socket to be created
 * \return TRUE if success, FALSE if failed
 */
int sockConnect (char *addr, int port, int *socketID){
  struct sockaddr_in sockname;
  struct hostent *host_address;
 
  if ((host_address = gethostbyname(addr)) == NULL){ // addresse translation => IP
    fprintf (stderr, "Error while converting %s to inet address", addr);
    return FALSE;
  }
  #ifdef DEBUG
  else{
    printf ("official name : %s\n",host_address->h_name);
  }
  #endif
 
 
  if ((*socketID = socket(AF_INET ,SOCK_STREAM, 0)) == -1){ // TPC/IP socket
    fprintf (stderr; "Error while creating socket");
    return FALSE;
  }
 
  sockname.sin_family = host_address->h_addrtype;
  sockname.sin_port = htons (port);
  memcpy ((char *)&sockname.sin_addr.s_addr, host_address->h_addr,host_address->h_length);
 
  if((connect(*socketID, (struct sockaddr *)&sockname, sizeof(struct sockaddr_in))) == -1){
    fprintf (stderr, "Error while connecting socket to %s:%d",addr, port);
    return FALSE;
  }
  return TRUE;
 
‹ Effectuer des requêtes sur un serveur mysqlhautGestion des signaux ›