Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    16

    [C] Generare un numero di porta casuale

    Sistema Operativo: Mac OS X 1.4
    Linguaggio: C

    Ciao a tutti...
    mi trovo davanti al problema di dover assegnare ad un socket, un numero di porta host casuale (scelto a caso dal SO tra quelli liberi in quel momento).
    Ho guardato in giro su internet, ma sembra che tutti quelli che hanno scritto esempi sui socket, non avessero necessità simili alla mia (utilizzando DEFINE definivano loro stessi la porta)...
    Ora... credo sia impossibile che non esista un modo per farsi restutuire un numero di porta scelto a caso tra quelli liberi, quindi non mi resta che chiedere a quelli con piu' esperienza!

    Grazie molte in aniticipoLinguaggio:

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma ti serve per un'applicazione client o per una server ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    16
    Beh, diciamo che sto scrivendo un P2P... quindi ci saranno delle componenti client e server nello stesso programma.
    Nel caso particolare mi servirebbe per la parte "server" del programma.
    Mi occorre la generazione casuale poiche' piu' istanze del programma dovrebbero poter convivere sulla stessa macchina.
    In poche parole quel che devo fare e':

    1.Generare porta
    2.Distribuire in giro il numero della porta e l'IP (cosi' gli altri nodi possono contattarmi)
    3.Mettermi in ascolto su quella determinata porta
    4.Contattare gli altri sulla loro porta

    Grazie

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    E perche' mai dovresti far girare piu' istanze del server?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    16
    mmm mi sono espresso male scusa.
    Le istanze sono del programma P2P che, dovendo tutte essere in grado di comunicare e scambiare messaggi, hanno bisogno di una parte "server" che rimanga in attesa di messaggi (i quali faranno intraprendere elaborazioni e la compilazione dei messaggi di risposta).
    Quindi: tante istanze del P2P sulla stessa macchina -> tante parti "server" del P2P -> tante porte diverse sulle quali mettersi in attesa delle comunicazioni

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Sì ... ma perche' tante istanze del P2P ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    16
    Queste istanze del P2P dovranno elaborare alcune parti di matrici numeriche ( essendo un progetto piu' ampio non so bene cosa ci sia dietro).
    Sulle macchine che hanno a disposizione grande potenza di calcolo, invece di assegnare al programmino delle parti di matrice piu' grandi e complicate da elaborare, faccio girare piu' programmini contemporaneamente che elaborano parti semplici di matrice...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Sì ma, in genere, la parte server e' unica e si basa sull'ascolto di una porta fissa (pensa ad un web server che ascolta sempre sulla porta 80 ... ci mancherebbe che fornisse una porta diversa a seconda di chi si connette ...).

    In ogni caso, non voglio entrare piu' di tanto nelle tue scelte ... puoi fare un ciclo in cui tenti di metterti in ascolto su una porta ... se hai un errore, provi con la prossima ... mi sembra il metodo migliore ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    16
    Capisco...
    grazie Oregon (come al solito ).

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.