Un esempio del codice protebbe essere questo :

codice:
int sock; 
strcut sockaddr_in serv_addr; 

sock = socket(AF_INET, SOCK_STREAM, 0);  // creo il socket; 

memset((void *)&serv_addr, 0, sizeof( struct sockaddr_in)); 
serv_addr.sin_port = htons(n_porta); 
serv_addr.sin_family = AF_INET; 

// assegno il primo indirizzo, questa funzione e presente solo in linux credo
   inet_pton(AF_INET, argv[1], &serv_addr.sin_addr); 

// prima connessione 
connect(sock, ( struct sockaddr *)&sock_addr, sizeof(sock_addr)); 

// qui fai tutto sul primo socket; 

close(sock); 

// inizio nuova connessione 


sock = socket(AF_INET, SOCK_STREAM, 0);  // creo il socket; 

// azzero la struttura 

memset((void *)&serv_addr, 0, sizeof( struct sockaddr_in)); 

serv_addr.sin_port = htons(n_porta); 
serv_addr.sin_family = AF_INET; 


// assegno il secondo  indirizzo, questa funzione e presente solo in linux (dal tuo nick parliamo la stessa lingua)  credo
   inet_pton(AF_INET, argv[2], &serv_addr.sin_addr); 

seconda connessione 
connect(sock, ( struct sockaddr *)&sock_addr, sizeof(sock_addr)); 

close(sock);

Spero di aver capito il problema, e di essere stato di aiuto ciao!!!!!