int sd, new_sd;
int dim;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
int client_len = sizeof(client_addr);
char buffer[10];
char buffer2[64];
char mex,
int result;
/*PARTE SERVER*/
addr_initialize(&server_addr, PORT, INADDR_ANY);
sd = socket(AF_INET, SOCK_STREAM, 0);
result = bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr));
result = listen(sd, MAXCONN);
new_sd = accept(sd, (struct sockaddr*) &client_addr, &client_len);
do {
recv( new_sd, buffer[i], 1, 0);
i++;
} while (buffer[i-1] != '\n');
port2=atoi(buffer);
/*PARTE 2 SERVER*/
i=0;
do {
recv( new_sd, buffer2[i], 1, 0);
i++;
} while (buffer2[i-1] != '\n');
/* PARTE CONTROLLO */
i=0;
while(buffer2[i]=='\n'){
if(((buffer2[i]>='1')&&(buffer2[i]<='9'))&&(buffer2[i-1]=='A'))){
c=buffer2[i+1];
buffer2[i]=c;
i++;
}
else i++;
}
/*PARTE CLIENT*/
sd2 = socket(AF_INET, SOCK_STREAM, 0);
addr_initialize(&server_addr, port2, inet_addr("IP"));
result = connect(sd2, (struct sockaddr*) &server_addr, sizeof(server_addr));
dim=sizeof(buffer2);
send(sd2, buffer2, dim,0);
close(sd);
close(new_sd);
close(sd2);
/*PARTE 2 CLIENT*/
sd3 = socket(AF_INET, SOCK_STREAM, 0);
addr_initialize(&server_addr, port2, inet_addr("IP"));
result = connect(sd3, (struct sockaddr*) &server_addr, sizeof(server_addr));
send(sd3, mex, 1 ,0);
close(sd3);