View Full Version : [networking] condividere informazioni necessarie alla connessione
mad_hhatter
30-01-2008, 09:38
sto scrivendo un'applicazione che acquisisce dati e li comunica ad altre applicazioni client sia locali che remote. La mia applicazione, quindi, apre un server tcp su una porta X. Poiché la macchina su cui deve girare tale applicazione non ha una configurazione nota, potrei dover cambiare la porta su cui offro i miei servizi. Problema: come far sapere ai client a quale porta connettersi? Per le applicazioni locali potrei usare un qualche sistema come un file di configurazione condiviso (ma come potrei fare in modo che tale file non sia editabile se non dalla mia applicazione?), ma per le applicazioni remote? potrei usare un webserver e pubblicare le info necessarie, ma mi pare di usare un cannone per ammazzare una mosca... come si gestiscono solitamente questi problemi?
grazie mille :)
Almeno una porta la devi conoscere.
Ad esempio in RMI hai il registro che ascolta su una porta nota,
i client si connettono e recuperano il riferimento al server.
Potresti far fare ai client un port scan, ma mi sembra abbastanza disastroso.
Inoltre se presso il client gira un firewall sara' costretto ad aprire tutte
le porte, non sapendo su quale porta ascolti.
mad_hhatter
30-01-2008, 11:18
Almeno una porta la devi conoscere.
Ad esempio in RMI hai il registro che ascolta su una porta nota,
i client si connettono e recuperano il riferimento al server.
Potresti far fare ai client un port scan, ma mi sembra abbastanza disastroso.
Inoltre se presso il client gira un firewall sara' costretto ad aprire tutte
le porte, non sapendo su quale porta ascolti.
morale: un server deve avere una configurazione controllata, non può essere del tutto generico. è questo che mi stai dicendo?
grazie mille per il tuo aiuto
Non capisco cosa intendi per generico, comunque devi per forza
conoscere la porta.
Ad esempio quando visiti una pagina web il tuo browser si connette alla
porta 80, a meno che non sia specificato diversamente, ad es www.w.it:8080
Lo stesso vale per molte altre porte standard.
mad_hhatter
30-01-2008, 17:13
Non capisco cosa intendi per generico, comunque devi per forza
conoscere la porta.
Ad esempio quando visiti una pagina web il tuo browser si connette alla
porta 80, a meno che non sia specificato diversamente, ad es www.w.it:8080
Lo stesso vale per molte altre porte standard.
per le porte standard ok, ma se il mio server offre un servizio non standard, ad esempio un'applicazione ad-hoc che comunica direttamente via tcp senza far uso di un application server o di un web server?
facciamo un esempio concreto: skype. nelle opzioni c'è la possibilità di variare la porta per le incoming connections. bene, se io la cambio come fanno i client che vogliono collegarsi con me a sapere a quale porta contattarmi? tale porta viene pubblicata su un server centralizzato?
scusa l'ignoranza, me ne vergogno :(
...
facciamo un esempio concreto: skype... tale porta viene pubblicata su un server centralizzato?
Credo proprio di si', sia tu che chi ti deve chiamare sono autenticati in un server,
che probabilmente memorizza anche la porta su cui ascolti, oppure
(non so come funziona skype) passate entrambi attraverso il server (a cui TU
ti colleghi, su una porta conosciuta)
scusa l'ignoranza, me ne vergogno :(
Non ti scusare, di reti sono molto ignorante pure io :asd:
mad_hhatter
31-01-2008, 09:10
mille grazie per il tuo aiuto!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.