Avatar billede elv Nybegynder
06. november 2001 - 17:39 Der er 21 kommentarer og
1 løsning

Sockets i IE

Helløjsa igen.

Denne gang har jeg fat i et ganske simpelt client-server-java-projekt. Serveren kører med en ServerSocket og klienten har en simpel Socket. Ved at starte serveren og køre en accept() på serversocketen kan jeg få forbindelse til klienten (der er en applet). Dette virker også fint i appletvieweren. MEN! Lige så snart jeg prøver i internet explorer, går det galt i den linie hvor socketen bliver initaliseret... i java-konsollen i IE kan jeg se, at der bliver kastet følgende exception:

com.ms.security.SecurityExceptionEx[Client.start]: cannot access \"192.168.1.8\" (som jo selvfølgelig er min lokale ip....)
Hvad skal der rettes for at det kan komme til at køre gennem browseren sikkerhedsindstillinger?
Avatar billede lbhansen Nybegynder
06. november 2001 - 17:41 #1
du må kun connecte tilbage til den server, som din applet kommer fra.
Avatar billede disky Nybegynder
06. november 2001 - 18:19 #2
Yep det er som lb siger, du kan kun connecte til serveren som appleten er blevet loadet fra. Men du kan godt til andre adresser hvis den er sikkerhedscertificeret.
Avatar billede elv Nybegynder
06. november 2001 - 19:31 #3
Så hvis jeg skal have det til at virke, skal jeg så have en web-server op på den maskine hvor appletten ligger på?
Avatar billede elv Nybegynder
06. november 2001 - 19:31 #4
og hvorfor virker det så ikke, hvis serveren kører på min egen maskine og appletten også ligger derpå?
Avatar billede lbhansen Nybegynder
06. november 2001 - 19:35 #5
jeg tror det har noget med din IE at gøre. Den prøver på at oprette en forbindelse til localhost, og dens logik siger at der ikke må oprettes en forbindelse til klienten
Avatar billede elv Nybegynder
06. november 2001 - 20:45 #6
Jeg beder den ikke om at connecte til localhost, jeg beder den om at connecte til en ip.... som tilfældigvis er den samme som min localhost... der er forskel på de to ting... men som du siger (og som jeg selv forklarer i spørgsmålet) så er det jo internet explorer der er skyld i det.... det virker jo i appletvieweren....
Avatar billede lbhansen Nybegynder
06. november 2001 - 20:48 #7
i din routningstabel peger 192.168.1.8 og 127.0.0.1 på det samme interface, det er nok det som M$ bruger som beslutningsgrundlag.
Avatar billede elv Nybegynder
06. november 2001 - 21:18 #8
så du mener at hvis jeg kører appletten på en anden computer i netværk med serveren kørende på min computer (og appletten kørt fra et delt bibliotek fra min computer) vil det virke???
Avatar billede lbhansen Nybegynder
06. november 2001 - 21:37 #9
ja. du skal bare huske at den skal serveres fra en webserver, og ikke direkte fra et filsystem, da det vil være at betragte som værende på den lokale maskine
Avatar billede elv Nybegynder
06. november 2001 - 21:49 #10
ok, så server-maskinen skal have en web-server kørende samt en java-server. Og klienten skal bare bruge et html-dokument som er kørt fra den web-server? Sounds like a job for apache :)

Jeg tester det lige i morgen, så får vi af se om det virker. Den kan vel egentlig også køres fra den samme maskine, hvis bare web-serveren er i orden....
Avatar billede lbhansen Nybegynder
06. november 2001 - 22:02 #11
Det er ikke helt sikkert. det kan jo godt være at IE beslutter at selvom appletten kommer fra localhost, at den ikke må kontakte localhost
Avatar billede elv Nybegynder
06. november 2001 - 22:43 #12
hmm... det får vi ihverfald at se i morgen :)
Avatar billede logical Nybegynder
07. november 2001 - 08:14 #13
Fra din applet, tager du så hostnavnet med:

getCodeBase().getHost();

Eller bruger du bare en string?

Hvis du laver new Socket(getCodeBase().getHost());

Så burde den ikke brokke sig, ej heller i IE.
Avatar billede elv Nybegynder
07. november 2001 - 08:30 #14
  socket = new Socket(getCodeBase().getHost(), 5000);
giver fejlen: com.ms.security.SecurityExceptionEx[Client.start]: cannot access \"127.0.0.1\":5000
jeg har også prøvet med:
  socket = new Socket(InetAddress.getByName(\"elv\"), 5000); (hvor elv er computernavnet)
hvilket gav samme fejl... men det er jo nok fordi jeg ikke har en web-server kørende.....
Avatar billede lyhr007 Nybegynder
07. november 2001 - 09:28 #15
Hvis i mener det er IE der geder (altså fordi den bruger MS VM), så hent da den nyeste JRE (den hedder vidst 1.3.1_01).

Den vil overskrive MS VM på 2000/XP os, og så har du SUN VM som default.

Hvis den laver de samme fejl der, så er det nok nogen anden som der er galt.
Avatar billede elv Nybegynder
07. november 2001 - 10:22 #16
Det virker!!!

Jeg smækkede en apache web-server op, lagde klient-filerne derind og kørte serveren på samme maskine.... nu kører det... jeg smækker lidt point ud på forskellige personer...

Elv
Avatar billede elv Nybegynder
07. november 2001 - 10:26 #17
hva..... lbhansen skal du ikke have de sidste 20? :)
så smæk da lige et svar ind... :)
Avatar billede lbhansen Nybegynder
07. november 2001 - 16:51 #18
jo, hvis der ellers var flere point:)

Det tager jeg dog ikke så tunkt
Avatar billede elv Nybegynder
07. november 2001 - 18:14 #19
hmm... det er jeg sq ked af. du får bare 20 mere næste gang der er noget... du har jo som regel en god løsning :)
Avatar billede elisamarie Nybegynder
07. november 2001 - 18:22 #20
Er der nogen som kunne tænke sig at hjælpemig med noget java -programmering
Avatar billede lbhansen Nybegynder
07. november 2001 - 19:19 #21
elisamarie >> Det er jo det vi er her for:)

Hvis du mener mere specifik tutor, så må jeg nok
råde dig til at stille spørgsmålet, så alle kan se det, og ikke kun dem der læser denne tråd
Avatar billede elisamarie Nybegynder
07. november 2001 - 19:41 #22
Jeg mener specifik tutor, dvs hjælp til en opgave med noget gui og nogle metoder og jeg vil gerne betale for det
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester