PDA

Visualizza la versione completa : [C] Interrogazione server


ubuntuunixc
23-01-2009, 23:31
ciao raga

ho un problema

ho un server che deve vedere i gli altri server attivi

come si fa a vedere se un server occupato o libero ad accettare connessione ?

oregon
23-01-2009, 23:36
Che intendi con "occupato" o "libero"?

Di quale tipo di server parliamo? Rispetto a quali servizi?

La tua richiesta e' piuttosto confusa ...

ubuntuunixc
24-01-2009, 16:23
voglio sapere se attivo ed in grado di ricevere connessioni da client

oregon
24-01-2009, 16:27
Originariamente inviato da ubuntuunixc
voglio sapere se attivo ed in grado di ricevere connessioni da client

Possiamo anche scrivere mille post ma se continui a rispondere in questo modo cosi' generico, non avrai mai una "soluzione" ...

Ti avevo chiesto

Di quale tipo di server parliamo? Rispetto a quali servizi?

... se rispondi bene, altrimenti non so cosa dirti ...

ubuntuunixc
24-01-2009, 16:31
Originariamente inviato da oregon
Possiamo anche scrivere mille post ma se continui a rispondere in questo modo cosi' generico, non avrai mai una "soluzione" ...

Ti avevo chiesto

Di quale tipo di server parliamo? Rispetto a quali servizi?

... se rispondi bene, altrimenti non so cosa dirti ...

una applicazione client server in c sottu unix

il client "chiede al server principale " se c' un server libero per comunicare

client -> server principale -> vari server disponibili

si manda messaggi sottoforma di stringhe

oregon
24-01-2009, 16:36
il client "chiede al server principale " se c' un server libero per comunicare

Chiede? In quale modo? TCP/UDP? Su quale porta? In che modo?

E il server che chiami "principale" a sua volta, come contatta gli "altri"?

Quale codice hai usato nel client per contattare il server?


In realta' ancora non e' chiara la tua richiesta ...

ubuntuunixc
24-01-2009, 16:38
il protocollo sockstream famiglia e porta generici con INADDR_ANY il protovollo tcp

porta generica assegnata da me

oregon
24-01-2009, 16:40
Beh ... farai una connect, no? O il codice e' segreto?

ubuntuunixc
24-01-2009, 16:45
Originariamente inviato da oregon
Beh ... farai una connect, no? O il codice e' segreto?

non faccio nulla perch la prima cosa che devo fare interrogare tutti i server attivi in quel momento che possono ricevere connessioni da un client ma non so come fa un server a capire se un altro server attivo

senza questo non posso fare il resto

ubuntuunixc
24-01-2009, 16:48
per darti una idea sul codice

server.sin_family = AF_INET; //applicazione internet
server.sin_port=htons(5213); //porta 5200 scelta da noi
server.sin_addr.s_addr=htonl(INADDR_ANY); //indirizzo generico
server_fd=socket(PF_INET,SOCK_STREAM,0); //creazione socket
bind(server_fd, (struct sockaddr *) &server, sizeof(server)); //creazione collegamento
listen(server_fd,5);//resta in ascolto con una coda massima di 5

poi? devo dire sei attivo? se si allora connettiti

server2=accept(server_fd,(struct sockaddr *)&server2,&client_size); //accetta connesione dal server2

Loading