/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
java rmi problemer
Fra : Martin


Dato : 17-10-02 11:07

Hej NG

jeg sidder og døjer med en chat baseret på java.rmi og callback. Den virker
fint på intranet. Men over nettet går det ikke så godt. Jeg har affundet mig
med at det ikke går over en firewall (det kan javarmi callback slet slet ike
finde ud af). Men nu er der router problemer... Når jeg (uden router) kører
chatserveren kan min ven (med router) logge på og så sker der ikke mere.
Dvs. callback funktionen ikke virker. Vi har indkredset fejlen til at når
serveren vil callback bruger den min vens interne ip. Men den kan den
naturligvis ikke finde. Er der en måde man kan angive en eksterne ip?!!?
eller nogen andre forslag... det bliver en lidt tynd chat hvis den kun
virker over intranet :(

med venlig hilsen

Martin



 
 
Jonathan Stein (17-10-2002)
Kommentar
Fra : Jonathan Stein


Dato : 17-10-02 11:49

Martin wrote:

> jeg sidder og døjer med en chat baseret på java.rmi og callback.

Det er lige før dit indlæg hører til i en netværks-gruppe, det er nemlig selve
funktionen i nettet, der giver dig problemer.
Problemet opstår, når routeren oversætter interne til eksterne adresser. Når
man indefra åbner en forbindelse ud af routeren ved den, at forbindelsen skal gå
til den eksterne adresse - men hvis man udefra prøver at åbne en forbindelse
hvilken intern adresse skal den så gå til?
Den kan kun lade sig gøre, hvis routeren specifikt bliver sat op til det - og
det er næppe realistisk, hvis din chat skal være udbredt. Prøv i stedet at lave
et design, hvor man kun bruger den forbindelse, som klienten åbner til serveren
- ikke noget "call back".

M.v.h.

Jonathan

--
Nyt alternativ til egen server: JSP Enterprise hotel med adgang til
Enterprise Java Beans, egen Java Virtual Machine og egen IP-adresse
(giver mulighed for eget SSL-certifikat).
http://www.jsp-hotel.dk/



Martin (19-10-2002)
Kommentar
Fra : Martin


Dato : 19-10-02 12:15

>Prøv i stedet at lave
> et design, hvor man kun bruger den forbindelse, som
> klienten åbner til serveren
> - ikke noget "call back".
>

Ok.. det må jeg gøre så. Back to the drawingboard. Tak ellers...



Trygleren [9000] (18-10-2002)
Kommentar
Fra : Trygleren [9000]


Dato : 18-10-02 16:40

Du kan jo bare bruge CORBA. Det tilbyder også en langt større række
services.

--
"Sic gorgiamus allos subjectatos nunc"
Lars 'Trygleren' Winther

www.hesteskelet.dk





Anders K. Olsen (18-10-2002)
Kommentar
Fra : Anders K. Olsen


Dato : 18-10-02 16:40

"Martin" <borglumFJERNDETHER@mail.dk> skrev i en meddelelse
news:3dae8b2f$0$7027$edfadb0f@dspool01.news.tele.dk...
> Hej NG
>
> jeg sidder og døjer med en chat baseret på java.rmi og callback. Den
virker
> fint på intranet. Men over nettet går det ikke så godt. Jeg har affundet
mig
> med at det ikke går over en firewall (det kan javarmi callback slet slet
ike
> finde ud af). Men nu er der router problemer... Når jeg (uden router)
kører
> chatserveren kan min ven (med router) logge på og så sker der ikke mere.
> Dvs. callback funktionen ikke virker. Vi har indkredset fejlen til at når
> serveren vil callback bruger den min vens interne ip. Men den kan den
> naturligvis ikke finde. Er der en måde man kan angive en eksterne ip?!!?
> eller nogen andre forslag... det bliver en lidt tynd chat hvis den kun
> virker over intranet :(

Jeg kan desværre ikke give dig et godt svar, men jeg syntes du skal prøve at
søge i arkivet for RMI-USERS mailinglisten:

http://archives.java.sun.com/archives/rmi-users.html

Du er sikkert ikke den første der har haft det problem, så du kan sikkert
finde et eller andet.

Prøv evt. med NAT som keyword (Network Address Translation som er det
routeren laver for at omsætte den interne IP til en ekstern offentlig IP).

Held og lykke

Venlig hilsen
Anders



Trygleren [9000] (19-10-2002)
Kommentar
Fra : Trygleren [9000]


Dato : 19-10-02 00:40

Når i nu bruger RMI, går jeg ud fra i har en server, som alle klienter
kender IP'en på. Så kan i implementere en ren Socketløsning og ellers lade
serveren opbevare alle ip'er i en Hashtable. Når den så modtager en besked
fra en klient, spytter den dem ud via en iterator til de forskellige
klienter.

Server
ServerSocket port #1 //venter på nye beskeder fra klient
ServerSocket port #2 //venter på connections (nye klienter)

Klient
ServerSocket //venter på beskeder fra serveren
Socket //til at sende beskeder til serveren

--
"Sic gorgiamus allos subjectatos nunc"
Lars 'Trygleren' Winther

www.hesteskelet.dk




Martin (19-10-2002)
Kommentar
Fra : Martin


Dato : 19-10-02 03:40

tak for hjælpen... beklager jeg ikke fik understreget at mit primære mål er
at låse problemet i RMI


"Trygleren [9000]" <TryglerenSLETDETHER@tdcadsl.dk> wrote in message
news:3db09bd2$0$97644$edfadb0f@dspool01.news.tele.dk...
> Når i nu bruger RMI, går jeg ud fra i har en server, som alle klienter
> kender IP'en på. Så kan i implementere en ren Socketløsning og ellers lade
> serveren opbevare alle ip'er i en Hashtable. Når den så modtager en besked
> fra en klient, spytter den dem ud via en iterator til de forskellige
> klienter.
>
> Server
> ServerSocket port #1 //venter på nye beskeder fra klient
> ServerSocket port #2 //venter på connections (nye klienter)
>
> Klient
> ServerSocket //venter på beskeder fra serveren
> Socket //til at sende beskeder til serveren
>
> --
> "Sic gorgiamus allos subjectatos nunc"
> Lars 'Trygleren' Winther
>
> www.hesteskelet.dk
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste