Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    49

    [C] Network programming

    Ciao. Avrei bisogno di una informazione: ho visto come in C su linux si possa fare in maniera semplice una applicazione client server con le varie chiamate a listen e accept da parte del server e con la connect da parte del client. Ora mi sorge un dubbio: se volessi fare un'applicazione in cui i client loggano al server e poi hanno gli indirizzi degli altri client, come faccio a instaurare la connessione tra i 2 client? Devo far si che tutti i client, o con la fork o con i thread, stiano sia in listening che eventualmente abili ad effettuare una connect verso un altro client? Grazie ciao

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    La domanda non e' chiara ... se c'e' un server, a cosa ti serve far comunicare tra loro i client ?

    Descrivi un po' il tipo di programma che vorresti fare ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    49
    considera una cosa stile messenger, in cui il client logga al server per informare che è connesso e quindi il server gli ritorna l'elenco dei client connessi per una eventuale connessione. quello che appunto non so è se poi il client vuole connettersi ad un altro client posso farlo direttamente con una connect e se in tal caso quindi il client ricevente debba in un thread attendere in listen. grazie ciao

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se la connessione tra i client deve avvenire direttamente come hai detto, sì, il client deve avere un socket in ascolto.

    Ma potresti anche comunicare attraverso il server. I messaggi dal client 1 al client 2 possono passare attraverso il server stesso.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    49
    ok grazie era quello che pensavo, o implementare la listen o altrimenti il server deve occuparsi di inoltrare i pacchetti. penso che però l'implementazione tramite client sia più semplice e inoltre non rischia di ricadere nella situazione del single point of failure. grazie ciao inoltre ho visto come con python il tutto sia realizzato ad alto livello con pochissime righe.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    49
    continuando nello sviluppo di tale problema, sono arrivato ad implementare la situazione in cui il client collegandosi al server da la sua disponibilità a ricevere connessioni: faccio la bind per associare una porta al client e quindi la connect al server. Con un thread gestisco la listen e quindi l'eventuale accept, solo che se in questo thread rifaccio la bind, essa restituisce -1 poichè forse è stata fatta in precedenza; se viceversa nel login non faccio la bind e la faccio solo nel thread della listen, il client loggherà al server con una porta casuale. A causa di ciò mi conviene allora far si che faccia la bind per loggare in modo da scegliere una porta tra quelle non ben note e mi metto in ascolto sempre su una stessa porta che scelgo a priori? So che forse la spiegazione è un pò complessa ma vi ringrazio anticipatamente per una eventuale risposta. Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    49
    tra l'altro ora che ci penso qualora mettessi ciascun client in ascolto per una connessione in entrata sulla stessa porta non potrei più provare il progetto in locale in quanto più processi andrebbero a usare la stessa porta o sbaglio?

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    49
    nessun aiuto?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da xela86
    nessun aiuto?
    La domanda qual e' ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    49
    Originariamente inviato da xela86
    continuando nello sviluppo di tale problema, sono arrivato ad implementare la situazione in cui il client collegandosi al server da la sua disponibilità a ricevere connessioni: faccio la bind per associare una porta al client e quindi la connect al server. Con un thread gestisco la listen e quindi l'eventuale accept, solo che se in questo thread rifaccio la bind, essa restituisce -1 poichè forse è stata fatta in precedenza; se viceversa nel login non faccio la bind e la faccio solo nel thread della listen, il client loggherà al server con una porta casuale. A causa di ciò mi conviene allora far si che faccia la bind per loggare in modo da scegliere una porta tra quelle non ben note e mi metto in ascolto sempre su una stessa porta che scelgo a priori? So che forse la spiegazione è un pò complessa ma vi ringrazio anticipatamente per una eventuale risposta. Ciao

    ehm sarebbe qua per quanto magari non semplice da capire

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.