Hogy lehetne csatlakozni egy eszközre ha NAT-olt ip címe van?
Egy fájlküldő/fogadó alkalmazást szeretnék készíteni aminek a két része úgy nézne ki, hogy ha fájlt akarnak küldeni akkor létrehoz az eszközön egy szervert egy éppen szabad random porttal és az első csatlakozó kliensnek átküldené a fájlt.
A fogadó részére pedig csak egy ip-t és egy portot kell megadni.
Az alkalmazást Windows, Linux, Android-ra készíteném el.
Viszont ha jól tudom a legtöbb mobilinternet szolgáltatónál NAT-olt ip címet osztanak ki és nem jár publikus ip cím egy eszközre se ami nem lenne jó mert ha valaki mobilnettel szeretne fájlt küldeni nem tudna senki csatlakozni a szerverre.
Erre lehet találni valami megoldást?
"létrehoz az eszközön egy szervert egy éppen szabad random porttal és az első csatlakozó kliensnek átküldené a fájlt. A fogadó részére pedig csak egy ip-t és egy portot kell megadni."
Ha random port szám, akkor a kliens azt honnan fogja tudni? Hogy fogja a szerver-port ismerete nélkül elérni a szervert?
Ha ezt megoldod, akkor a többi már épülhet egy sima TCP kapcsolatra.
Aki küldené a fájlt az lenne a szerver.
A random portot pedig feltüntetné a program felületén amit megadna a fogadó félnek az ip címével együtt, hogy csatlakozhasson a szerverre ami a fájlt fogja átküldeni.
De hiába fogja megadni az ip címét és a portját a küldő (szerver) fél ha natolt hálóban van és nem fog tudni rá csatlakozni.
Felejtsd el a NAT-ot, nem az a gond.
"A random portot pedig feltüntetné a program felületén amit megadna a fogadó félnek az ip címével együtt,"
Mármint a szerver felületéről van szó? Vagy hol látszik a cím? És azt ki fogja látni?
Nem kell semmiféle IP-t megadni, ha egy TCP kapcsolatot fel tudsz építeni. A felhasználó amúgy se szöszöljön IP címekkel (ha jól értem). A kérdés: a kliens hogy találja meg az épp akkor létrejövő szervert a hálón? Nem tudom, milyen felületen akarod propagálni az IP címét, ahhoz is először azt meg kell tudni címezni.
Sajnos, ahogy fentebb írták, állandó szerver kell, ahova a küldő és a a fogadó is be tud jelentkezni. Utána már elvileg p2p kapcsolatot ki tudnak alakítani egymással, de addig egyik sem ismeri a másikat. Olyasmi, mint a torrent, ott is van egy (több) szerver, ahol megtalálják egymást a kliensek, utána a fájlcsere már direktben mehet. Valószínűleg a telón is a Google fiókkal először egy session jellegű kapcsolat jön létre, utána már mindenki ismer mindenkit.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!