Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente bannato
    Registrato dal
    Dec 2003
    Messaggi
    562

    Applicazioni client/server e le porte

    Quando si utilizzano i socket per far comunicare una applicazione client con una applicazione server, come si fa a decidere il numero della porta destinato a tale comunicazione?

    Mi spiego meglio. Mettiamo che scelgo la porta 853, come faccio ad essere sicuro che nessun altro software utilizzi questa porta e, perciò, non vada i conflitto?

  2. #2
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Con che linguaggio e su che os?

    Se ti serve farlo in C su Linux...
    Quando vai a dare i valori ad un oggetto sockaddr_in gli dai la rete alla quale connettersi ( x.sin_family = AF_INET; ) e la porta ( x.sin_port = htons ( PORT ); )
    Usando la funzione htons appunto associ la porta PORT a .sin_port


    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  3. #3
    Utente bannato
    Registrato dal
    Dec 2003
    Messaggi
    562
    non mi sono spiegato bene.

    Facendo un esempio, mi pare che i browser utilizzino la porta 80. CIPS utilizza un'altra porta specifica...
    Il mio dubbio è: come faccio a scegliere una porta senza correre il rischio che venga adoperata da u'altra applicazione?
    Per esempio, se scegliessi proprio la porta 80, cosa succederebbe utilizzando contemporaneamente un browser e l'applicazione in questione?

  4. #4
    Se una porta è usata quando chiami bind restituisce EADDRINUSE.

    Su alcuni sistemi non puoi usare porte <1024 se il processo non è di proprietà di root, quindi intanto comincia a scegliere una porta > 1024.

  5. #5
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Ah, scusa, avevo capito male...
    Leggi qui': http://forum.html.it/forum/showthrea...hreadid=706451
    Per quanto riguarda i clients... Basta che provi ad aprire una porta random (oltre la 49151)...

    Per il server...
    Se e' una cosa seria creati un bel RFC...
    Se no prendine una che non sia usata da altri software (cerca su internet o guarda in /etc/services per sapere quali dovrebbero non essere occupate) ed usala

    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

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.