23. december 2004 - 16:40Der er
10 kommentarer og 2 løsninger
Socket bag router
Hej eksperter..
Jeg har lavet et lille program, som bruger TSocketServer til at modtage nogle beskeder.
Beskederne sendes via en PHP-side. Problemet er bare, at når folk der kører programmet sidder bag en router, når beskederne aldrig frem til programmet.
Du skal bruge en port der er åben i routeren, du kan f.eks. bruge port 80 localt på din client og så måske en anden på serveren, det ved jeg ikke, men dit problem er at der som regl er lukket for "mærkelige porte" i en router i dag ( firewall )
Jeg kan ikke rigtig få det til at virke.. Et sted bag routeren sidder serveren og lytter på en port fx 80, med den interne IP 10.0.0.1. Når jeg så sender en besked fra min PHP-side til netværkets eksterne IP. Hvordan finder routeren så ud af, at beskeden skal sendes til maskinen med ip 10.0.0.1, med mindre trafikken til port 80, er forwardet til den maskine? Kan det lade sig gøre, og har jeg ikke ret i, at det er der min problematik ligger..?
Ja, du skal forwarde port 80 til 10.0.0.1, det er helt rigtigt, og så kan du få det problem at du ikke kan test indefra og ud og ind igen, det spærret din router også for, noget med loopback et eller andet, som vist nok kan slås fra
Jeg ved bare, at hvis jeg ser på CuteFTP ( client ), så kan den connect hvor den bruger en PASV Dette skal man nogle gange bruge, ellers vil modtagerens firewall blokere en.
Problemet er bare.. Server-programmet køre hos brugeren, og jeg har jo ikke mulighedfor eller lov til at rette i folks router.. Det må da være muligt at lave programmet sådan at beskeden kan nå frem til brugeren.. Måske skal jeg omstrukturerer helt, så jeg køre en central server, og brugerne så køre en klient, som connecter til serveren?
Det du kunne gøre, er alt lave i dit program, mulighed for at brugeren kan def hvilken porte der er åbenet for i hans router, eller gør som alle andre, fortælle brugeren at disse porte bla bla bla skal åbenes, hvis der skulle være problemmer.
På den måde, fortæller du dem, at de selv skal configurere den. altså routeren.
Men det er også en omvendt måde du gør det på. Men da altid kørt client på brugeren computer, og server programmet på serveren. Få at undgå de problemmer, som du er løbet ind i.
Jeg valgte at omstrukture mit program, så brugeren kørte en klient, som connecteded mod en sentral server.. Hvis du vil have nogle point også, dl, så smid et svar.. :)
du har et server-programm for noe du har laget på din PC hjemme, og klienten er et php-script som ligger på en web-server?
isåfall er det DU som må forwarde DIN router..
jeg kjører en spill-server (hjemmelaget internettspill)hjemme, og alle kan koble til den, også de som er bak er router. det kommer av at når du sender UT noe gjennom routeren til en addresse på en port, skjønner routeren at når den får noe tilbake på den porten fra den addressen skal det til din maskin.
men hvis noen skal koble til deg og du er bak en router må DU forwarde porten til IP-en din..
Er dette rett?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.