OVH Cloud OVH Cloud

socket

4 réponses
Avatar
d.fr
voila un ptit bout de code que j'essaye de faire fonctionner :
/* --------------------------------------------- */
try
{
Socket websock = new Socket("http://www.google.fr", 80);
}
catch (UnknownHostException e)
{
showStatus("UnknownHostException");
}
catch (IOException e)
{
showStatus("IOException");
}
/* --------------------------------------------- */

et voila l'erreur que j'obtiens, à l'execution (la precompilation avec
javac s'etant deroulee sans pbm) :

java.security.AccessControlException: access denied
(java.net.SocketPermission [http://www.google.fr] resolve)


qq1 peut-il m'aider ?

merci

4 réponses

Avatar
Simon Jeremy
bonjour,

d.fr wrote:
voila un ptit bout de code que j'essaye de faire fonctionner :
/* --------------------------------------------- */
try
{
Socket websock = new Socket("http://www.google.fr", 80);
}
catch (UnknownHostException e)
{
showStatus("UnknownHostException");
}
catch (IOException e)
{
showStatus("IOException");
}
/* --------------------------------------------- */

et voila l'erreur que j'obtiens, à l'execution (la precompilation avec
javac s'etant deroulee sans pbm) :

java.security.AccessControlException: access denied
(java.net.SocketPermission [http://www.google.fr] resolve)


qq1 peut-il m'aider ?

merci


c'est pour une applet ?

Avatar
d.fr
bonjour,

d.fr wrote:

voila un ptit bout de code que j'essaye de faire fonctionner :
/* --------------------------------------------- */
try
{
Socket websock = new Socket("http://www.google.fr", 80);
}
catch (UnknownHostException e)
{
showStatus("UnknownHostException");
}
catch (IOException e)
{
showStatus("IOException");
}
/* --------------------------------------------- */

et voila l'erreur que j'obtiens, à l'execution (la precompilation avec
javac s'etant deroulee sans pbm) :

java.security.AccessControlException: access denied
(java.net.SocketPermission [http://www.google.fr] resolve)


qq1 peut-il m'aider ?

merci



c'est pour une applet ?

OUI !!!

pardon ^_^`


Avatar
euler
d.fr wrote:

bonjour,

d.fr wrote:

voila un ptit bout de code que j'essaye de faire fonctionner :
/* --------------------------------------------- */
try
{
Socket websock = new Socket("http://www.google.fr", 80);
}
catch (UnknownHostException e)
{
showStatus("UnknownHostException");
}
catch (IOException e)
{
showStatus("IOException");
}
/* --------------------------------------------- */

et voila l'erreur que j'obtiens, à l'execution (la precompilation avec
javac s'etant deroulee sans pbm) :

java.security.AccessControlException: access denied
(java.net.SocketPermission [http://www.google.fr] resolve)


qq1 peut-il m'aider ?

merci



c'est pour une applet ?

OUI !!!

pardon ^_^`


ben si je me rappelle bien, par défaut, une applet n'a le droit d'ouvrir de
connexion qu'avec le serveur d'ou elle a été téléchargée. Si tu veux lui
donner plus de droits (ATTENTION DANGER), tu dois lui spécifier des
permissions supplémentaire. Par exemple, sous un système unix tu peux créer
un fichier .java.policy dans ton home directory qui contient par exemple
qqchose du genre :

grant {
permission java.net.SocketPermission "www.google.fr:80"
"accept, connect, resolve";
};


ce qui autorisera toutes les applets qui seront téléchargées sur ta bécanne
à se connecter au port 80 de www.google.fr.

Si tu veux mettre cette applet dans un serveur que tu gères, cela signifie
que tous les clients qui veulent l'utiliser doivent avoir ce policy file
(pas très réaliste).

Autre solution plus simple pour les clients mais plus chère pour toi, c'est
d'obtenir une clé de cryptage auprès d'une autorité de certification et de
signer ensuite ton applet.

Y'a moyen de tuner ces permission encore un petit peu plus finement, mais
faudrait plus d'infos



Avatar
d.fr
Autre solution plus simple pour les clients mais plus chère pour toi, c'est
d'obtenir une clé de cryptage auprès d'une autorité de certification et de
signer ensuite ton applet.

Y'a moyen de tuner ces permission encore un petit peu plus finement, mais
faudrait plus d'infos


bon, d'abord merci pour l'info, je vais essayer, la piste me parait tres
bonne.
pour ce qui est de donner plus d'infos la, ya pas gd chose à dire : je
debute en java, donc je vise pas trop haut.
voila le source complet de l'applet :



/* ------------------------------------------ */

import java.applet.Applet;
import java.awt.*;

import java.awt.event.*;
import javax.swing.*;
import java.util.*;




import java.io.*;
import java.net.*;



public class EchoClient extends Applet //implements Runnable,
ActionListener
{
// private Socket websock;
private DataInputStream m_inputStream = null;
private DataOutputStream m_outputStream = null;
private URL m_stream;
private URL m_docBase;




public void init()
{
m_docBase = getDocumentBase();

try
{
Socket websock = new Socket("http://rainbow.blogdns.net", 80);
/* m_outputStream = new DataOutputStream(websock.getOutputStream());
m_inputStream = new DataInputStream(new
BufferedInputStream(websock.getInputStream()));

StringBuffer request = new StringBuffer();
request.append("GET / HTTP/1.0rn");
// if (m_docBase != null) { request.append("Referer: " + _docBase +
"rn"); }
// request.append("User-Agent: rn");
// if (encpasswd != null) { request.append("Authorization: Basic " +
encpasswd + "rn"); }
request.append("Host: 192.168.223.1rn");
request.append("rn");
m_outputStream.writeBytes(request.toString());
// m_collecting = true;*/


try
{
/* m_outputStream.close();
m_inputStream.close();*/
websock.close();
showStatus("ok !");
}
catch (IOException e)
{
showStatus("IOException");
}

}
catch (UnknownHostException e)
{
showStatus("UnknownHostException");
}
catch (IOException e)
{
showStatus("IOException");
}
}
}


/* ---------------------------------------- */


l'idee la c'est de recupérer une page via un socket... a terme ce que je
vise est de faire un applet de visualisation pr un serveur video
(camsource... pr ma webcam) or, cela va passer par l'utilisation des
sockets et, ayant fait quelques petits tests qui ont capoté j'ai réduit
le code source sur lequel je travaillais à sa plus simple expression de
sorte que j'eu pu me rendre compte que l'erreur venait du socket.
Debutant, je ne suis pas encore tres famillier des msg d'erreurs ni meme
du reste d'ailleurs.
bref.

en tout cas : MERCI :)