Bonjour!
J ai réalisé l'applet suivant:
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.io.*;
public class Socket1 extends Applet {
Socket connexion;
BufferedReader entree;
Label erreurconnect = new Label ("erreur connexion");
Label erreurenvoi = new Label ("erreur envoi");
Label erreurreception = new Label ("erreur réception");
Label erreurfermeture = new Label ("erreur fermeture");
String s;
Label erreurconnect2 = new Label (s);
// Méthode appelée par le navigateur lorsque l'applet est chargée
public void init (){
setBackground(Color.gray);
}
public void connect(int num_port){
try {
URL urlServer = getCodeBase();
s=urlServer.getHost();
connexion = new Socket(s,num_port);
add (erreurconnect2);
}
catch (Throwable t)
{
add (erreurconnect);
}
}
public void envoi(String données_envoi){
try {
PrintWriter sortie = new PrintWriter( connexion.getOutputStream(), true);
sortie.write(données_envoi );
sortie.flush();
}
catch (IOException e)
{
add (erreurenvoi);
}
}
public String reception(){
char[] cbuf=new char[10];
String retour="";
try {
entree = new BufferedReader( new InputStreamReader(connexion.getInputStream()) );
int nbre=entree.read(cbuf);
for (int i=0;i<nbre;i++){
retour=retour+cbuf
;
}
return retour;
}
catch (IOException e)
{
add (erreurreception);
return "0";
}
}
public void fermer(){
try {
connexion.close();
}
catch (IOException e)
{
add (erreurfermeture);
}
}
}
Celui-ci me permet donc de me connecter à un serveur, de lui envoyer et de recevoir des chaînes de caractères.J ai ensuite inséré cet applet dans une page html pour accéder à ces fonctions via du javascript.
Mon but est de placer cette page et l applet sur un PC A, de l ouvrir d un pc B, et de communiquer avec un serveur situé sur le pc A.Mais malheureusement cela ne fonctionne pas...
1) J ai vu que ce cas de figure marchait sans avoir besoin de signer mon applet, est ce réellement le cas?
2) Comment se fait-il que si un serveur est lancé sur le pc B, mon socket se connecte à celui-ci alors que codebase() est censé retourner l'addresse où est stocké l'applet?
Merci d'avance Bonjour!