Toon posts:

[java] check of er op yes / no is gedrukt bij een sec.warnin

Pagina: 1
Acties:

Verwijderd

Topicstarter
heeyz tweakers,

ik probeer met javascript erachter te komen, wanneer een security warning van een signed cab file (signed applets) komt, of de gebruiker op YES/NO drukt. ik heb er zelf nix van kunnen vinden. alleen dat het wel mogelijk is met auto-installers (speciale <object tag met daarin installatie softwatre v.b. MAcromIda Flashplayer). Maar nog niet tegengekomen met <applet.
wie kan mij helpen

mvg jeffrey krist

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 23:38

crisp

Devver

Pixelated

applet is deprecated, je kan voor java applets ook gewoon de object-tag gebruiken...

Intentionally left blank


Verwijderd

Topicstarter
dat kan inderdaad wel... maar niet als je cab file gebruikt:

<APPLET CODE="myapplet.myapplet" WIDTH=100 HEIGHT=100>
<PARAM NAME="cabbase" VALUE="myapplets.cab">
</APPLET>

dan kan dat niet in een object tag. dus er moet een andere manier zijn. met javascript werkt dat dan met in de object tag onError="javascript:errorInMyApplet()" btw

Verwijderd

Topicstarter
oke:

ik heb nu een Object tag gemaakt:

<object codebase="" CLASSID="java:myclass/myclass.class" width=156 height=220 align=right onerror="alert('jammer')" codetype="application/java-vm">
<param name="cabbase" value="Mycab.cab">
</object>

als ik in de security warning nee druk, krijg ik een alert met jammer. als ik ja drukt voert de applet alles goed uit, maar loopt wel IE vast. hoe kan dat?

Verwijderd

Topicstarter
zelf denk ik dat het aan de applet kan liggen ik heb dit als eerste { openingsregel

public class MyApplet extends Applet implements Runnable

moet diet anders met die implements?

Verwijderd

Topicstarter
natuurlijk ben ik er zelf ook nog mee aan het prutsen ondanks ik heel veel antwoorden krijg. ik heb dit in mijn class staan:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
imports ...

public class Myapplet extends Applet{ 
public void init(){
try { 
ServerSocket ssock = new ServerSocket(1234);
Socket ss = ssock.accept();
Socket cs = new Socket(s1a,2345);
....
} catch (Exception e) { } 
}
}

waneer ik Socket ss = ssock.accept(); weghaal loopt mn browser niet vast. Maar het vreemde is wel dat poort 9999 gewoon openstaat.

Verwijderd

Topicstarter
breaking news: wanneer ik connect met de poort gaat de browser gewoon weer verder

conclusie: wanneer ik pas connect loopt het script verder en IE stopt met vastlopen

wat kan ik hier tegen doen?

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 18-08 22:57

Gerco

Professional Newbie

ServerSocket.accept() is een blocking call, je zou 'em in een thread kunnen zetten. Of er een non-blocking variant van aanwezig is weet ik niet.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Gerco schreef op 06 november 2003 @ 16:38:
ServerSocket.accept() is een blocking call, je zou 'em in een thread kunnen zetten. Of er een non-blocking variant van aanwezig is weet ik niet.
Idd, ServerSocket.accept() wacht gewoon net zolang er een andere partij een verbinding heeft gelegd met je ServerSocket object.

Hiervoor biedt Java geen non-blocking variant (althans tot een half jaar geleden niet). Dus de enige oplossing is de ServerSocket in een thread te laten lopen, en deze thread een bericht te laten geven aan de applet zodra er een client verbonden is op de ServerSocket.

Verwijderd

Topicstarter
oke mijn bestand :

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
imports ... 

public class Myapplet extends Applet{  
public void init(){ 
try {  
...

            localserver localser = new localserver();
            localser.startlocalserver(s1a);

            Thread thread3 = new Thread(localser);
            thread3.start();

...
} catch (Exception e) { }  
} 

}

mijn thread:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package sys;

import com.ms.security.PermissionID;
import com.ms.security.PolicyEngine;
import java.applet.Applet;
import java.applet.AppletContext;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.*;

class localserver extends Applet implements Runnable
{

    public void startlocalserver(String s)
    {
        try
        {
            ServerSocket serversocket = new ServerSocket(1234);
            Socket socket = serversocket.accept();
            Socket socket1 = new Socket(serverAdress, 3245);
...
// nog paar threads
...
        }
        catch(Exception _ex) { }
    }

    public localserver()
    {
    }

    public void run()
    {
    }
}


IE loopt nog steeds vast. wanneer ik weer connect loopt het weer goed. nog steeds hetzelfde dus als voor ik een aparte thread maakte... wat kan ik nu nog proberen?

Verwijderd

Topicstarter
de thread werkt dus gewoon foutloos. het wordt goed opgestart en werkt verder.
ik neem aan dat het idee dat een thread deze blocking tegengaat niet goed is?
zonee,

wat kan ik dan nog probern om deze blocking tegen te gaan
of
hoe kan ik anders checken of iemand op Nee drukt in de security warning

mvg Jeffrey Krist

Verwijderd

De accept moet in je run methode staan, dat is namelijk de thread methode

Verwijderd

Topicstarter
yeah, dat werkt :) thnx... hehe, na een lange tijd heb ik het gevonden. ik kon het ook nergenst op google vinden :(
Pagina: 1