Bonjour!
J ai réalisé l'applet suivant:
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.Code: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[i]; } return retour; } catch (IOException e) { add (erreurreception); return "0"; } } public void fermer(){ try { connexion.close(); } catch (IOException e) { add (erreurfermeture); } } }
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
-----