DoubleAJ
02-05-2005, 19:31
Sto creando un server a cui devono collegarsi due client.
Si mette in attesa della connessione del primo client, dopodichč dovrebbe mettersi in attesa del secondo. Il problema č che, alla connessione del primo, il server salta l'attesa del secondo...
Mi spiego meglio... questa č 1 parte del listato del server:
bind (socklis, (struct sockaddr*)&local_addr, sizeof(local_addr));
ris=listen(socklis, backlog); //backlog=1
printf("In attesa di una connessione dal client 1...\n");
sockin=accept(socklis, (struct sockaddr*)&sockin, (LPINT)&addrlen);
printf("Client 1 connesso!\n");
printf("In attesa di una connessione dal client 2...\n");
sockout=accept(socklis, (struct sockaddr*)&sockout, (LPINT)&addrlen);
printf("Client 2 connesso!\n");
Quando il client 1 si connette a schermo mi appaiono questi messaggi:
In attesa di una connessione del client 1...
(si connette SOLO il client 1)
Client 1 connesso!
In attesa di una connessione dal client 2...
Client 2 connesso!
In pratica dopo la connessione del client 1, non si rimette in attesa per il client 2...
Come faccio per farlo rimettere in attesa? Se la prima accept() č bloccante perchč la seconda non lo č?
Grazie :)
Si mette in attesa della connessione del primo client, dopodichč dovrebbe mettersi in attesa del secondo. Il problema č che, alla connessione del primo, il server salta l'attesa del secondo...
Mi spiego meglio... questa č 1 parte del listato del server:
bind (socklis, (struct sockaddr*)&local_addr, sizeof(local_addr));
ris=listen(socklis, backlog); //backlog=1
printf("In attesa di una connessione dal client 1...\n");
sockin=accept(socklis, (struct sockaddr*)&sockin, (LPINT)&addrlen);
printf("Client 1 connesso!\n");
printf("In attesa di una connessione dal client 2...\n");
sockout=accept(socklis, (struct sockaddr*)&sockout, (LPINT)&addrlen);
printf("Client 2 connesso!\n");
Quando il client 1 si connette a schermo mi appaiono questi messaggi:
In attesa di una connessione del client 1...
(si connette SOLO il client 1)
Client 1 connesso!
In attesa di una connessione dal client 2...
Client 2 connesso!
In pratica dopo la connessione del client 1, non si rimette in attesa per il client 2...
Come faccio per farlo rimettere in attesa? Se la prima accept() č bloccante perchč la seconda non lo č?
Grazie :)