PDA

View Full Version : Comunicare tra utenti Fastweb e non


bio n3t
08-06-2008, 18:55
Ciao a tutti, sto creando un semplice programma di chat e vorrei sapere come fare per inviare i dati da un utente fastweb (io) a uno non fastweb, perché ho notato che non avviene nemmeno il collegamento forse per il fatto che io non ho un IP pubblico. Non capisco perché programmi come MSN fanno comunicare 2 utenti qualsiasi e io non posso, se avete delle risposte al mio problema vi prego di farmele sapere grazie a chiunque risponderà, ciao!

Darda
09-06-2008, 01:02
allora non riesci per il semplice motivo che non hai ip publico soluzione usi hamachi che crea una vpn ovviamente lo devono installare tutti coloro con cui vuoi chattare col tuo programma quei programmi funzionano per il semplice motivo che solo loro a fare le chiamate verso il server centrale non viceversa
cmq fastweb non va bene se devi utilizzare protocoli tipo quelli delle chat o ftp o serverweb in locale ecc ecc

bio n3t
09-06-2008, 09:56
grazie per avere risposto intanto,
ma il server di MSN come fa a sapere che deve inviare i pacchetti proprio a me e non a un altro utente fastweb? mi spiego meglio:

io invio un messaggio ---> passa per il server di fastweb ---> poi per quello di MSN ---> arriva all'interlocutore

oppure

l'interlocutore invia un messaggio ---> passa per il server di MSN ---> poi a quello di fastweb ---> che poi lo invia a me

più o meno funziona così o sbaglio? se si allora come fanno a sapere che i messaggi partono/arrivano dal/al mio computer?

Gianfry24
09-06-2008, 10:07
grazie per avere risposto intanto,
ma il server di MSN come fa a sapere che deve inviare i pacchetti proprio a me e non a un altro utente fastweb? mi spiego meglio:

io invio un messaggio ---> passa per il server di fastweb ---> poi per quello di MSN ---> arriva all'interlocutore

oppure

l'interlocutore invia un messaggio ---> passa per il server di MSN ---> poi a quello di fastweb ---> che poi lo invia a me

più o meno funziona così o sbaglio? se si allora come fanno a sapere che i messaggi partono/arrivano dal/al mio computer?

Gli apparati di Fastweb fanno NAT (Network Address Translation) quindi sanno esattamente a chi sono rivolti i pacchetti...per questo MSN funziona.

Darda
09-06-2008, 10:43
quanto msn sul tuo pc si collega effettua una chiamata sulla porta "x" al suo gateway (server fastweb) il quale assegna un id alla connessione fra te e lui e un id alla conessione che avverà fra lui e il server msn.

tuopc---->fastwebserver---->msnserver
il tuo pc chiama fastwebserver con una richiesta di collegamento a msnserver sulla porta 500 (esempio porta messa a caso) il server fastweb memorizza la tua richiesta e assegna un id es. 5 (questo id ti rimarra finche non chiudi la conessione msn) dopo diche serverfastweb fara a sua volta una chiamata verso servermsn dando un altro id a questa chiamata es. 10 (anche queato rimane fisso fini a che non chiudi la chiamata msn) arrivato il messaggio a servermsn msn apre il messaggio legge l'id e lo memorizza legge il numeutente al quale è indirizzato il messaggio e inoltra il messaggio al destinatario (tenendo in memoria id del mittente e nomeutente del mittente e a chi era distinato il messaggio)
quando ricevi un messaggio di risposta dal tuo amico
tuoamico--->servermsn--->fastwebserver--->tuopc
tuo amico risponde al mes inviandolo al server msn dentro al pacchetto oltre al messaggio e a tutti i protocoli di rete c'è anche il tuo nome quindi msn non deve far altro che aprire il pacchetto controllare il destinatario e una volta trovato gli associa nelo caso abbia gia avuto una conessione da te il tuo id indirizzo ip al quale inviare (serverfastweb) il server fastweb arrivato una conessione da msn con un id particolare sa che quella conessione era per l'ip x.y.z.w all'interno della sua rete a querl punto manda il pacchetto al tuo pc.

la spiegazione so che non è delle migliori spero che ti possa aiutare ciao ciao

bio n3t
09-06-2008, 11:42
no no anzi sei stato chiarissimo ho capito ;)
ma questa procedura non dovrebbe essere possibile anche col mio programma? quando si verifica una richiesta di connessione c'è il "requestID" come parametro, che appunto è un numero... quindi perché non dovrebbe funzionare? :( grazie

Darda
09-06-2008, 11:56
il problema sussiste non quando tu mandi il messaggio ma quando il mittente essendo fuori da rete fw non riesce a trovarti in quanto il tuo soft di chat nn si appoggia a un server esterno ma è punto punto da quello che ho capito
cmq prova con hamachi

Darda
09-06-2008, 12:00
poi potrebbe anche essere che fw per far funzionanere msn skype ecc utilizzi dei protocoli in concordanza con essi per farli funzionarfe e il protocollo che usi te invece non viene usato da fw

bio n3t
09-06-2008, 13:00
si userei hamachi (anche se non l'ho mai usato ma ho letto un pò cos'è) ma il mio scopo era più che altro quello didattico ovvero vedere come funzionava una chat, non intendevo proprio fare un programma serio. cmq non c'è proprio modo di implementare un sistema tipo quello che mi avete detto nel mio programma? sono appena entrato in questo mondo e ho bisogno di una mano sorry :(