Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : applet [ Archives / Applet ] (yssouftoure)

mardi 11 octobre 2005 à 11:40:45 | applet

yssouftoure

bonjours Tout le monde
voila j'ai un probleme ,j'ai fais une application web pour stocker les coordonnees d'une personne ainsi que la photo de cette derniere,mon probleme c'est que je n'arrive pas a envoyer deux fois une image lorsque je veus envoyer une deuxieme fois on me dit :
java.net.bindeException: adress already in use:connect

hst!!!

mardi 11 octobre 2005 à 14:05:26 | Re : applet

safisoft

Si tu peux t'expliquer un peu je crois que ca sera meilleur!
ok?


mardi 11 octobre 2005 à 19:31:40 | Re : applet

neodante

Administrateur CodeS-SourceS
Un petit peu plus d'infos serait la bienvenue !!!

ciao


jeudi 13 octobre 2005 à 19:00:41 | Re : applet

yssouftoure

ok voici  le code en totalite avec des commentaire pour expliquer,je l'es simplifier
//-----------------------------x-------------------//
package Tombouctou;
import java.io.*;
import java.io.Serializable;
/*
cette classe encapsule mon image a envoyer sous forme de tableau de bite et un
 entier qui me sert de code pour savoire si l'applet a fini d'envoye(code=20)en ce temps cote servlet je ferme le fichier.
 */
public class ImageObject implements Serializable{
    public byte[] Byte;
    int code;
    public ImageObject(byte[] bit,int c){
    Byte=bit;
    code=c;
}
}

//-----------------------------x-------------------//
package Tombouctou;
/*
c'est une intance de cette classe que l'applet envoye au servlet et de meme le
servlet envoye sa reponse en object de ce type.
 la classe a pour partamer l'object seulement a envoyer.
 */
public class TObject implements java.io.Serializable{
    Object object;
    public TObject(Object obj) {
    object=obj;
    }
}

//---------------------------x----------------------//
package Tombouctou;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.net.URLConnection;
import javax.swing.border.TitledBorder;

//---Une boite de dialogue pour suivre les evemements
class AppletDialog extends JDialog implements ActionListener{
JLabel etats;
JButton ok;
JPanel bPane;
JPanel laPane;
public AppletDialog(JFrame pere,String etat){
    super(pere,"Avertissement",true);
    etats=new JLabel("");
    etats.setText(etat);
    ok=new JButton("OK");
    ok.addActionListener(this);
    ok.setPreferredSize(new Dimension(100,30));
    ok.setFont(new java.awt.Font("Courier New", Font.BOLD, 12));
    ok.setBorder(BorderFactory.createRaisedBevelBorder());
    bPane=new JPanel();
    laPane=new JPanel();
    laPane.setLayout(new FlowLayout());
    etats.setFont(new Font("Serif",1,15));
    bPane.setLayout(new FlowLayout());
    bPane.setBorder(BorderFactory.createEtchedBorder());
    bPane.add(ok);
    laPane.add(etats);
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add("South",bPane);
    getContentPane().add("Center",laPane);
    this.setBounds(250,300,450,250);
    this.setResizable(true);
    this.setVisible(true);
}
public void actionPerformed(ActionEvent evt){
if(evt.getSource()==ok){
this.dispose();
}
}
}//------------------Fin Boite de dialog

//-------une Fenetre pour le parent de la boite de Dialog et pour le FileChooser
class AppletFrame extends JFrame{
    public AppletFrame(){
    setVisible(false);
}
public void Dispose(){
this.dispose();
}
}
//-------------End Frame--
//-----------La Classe Principale
public class Appletagenda extends JApplet implements ActionListener{
    AppletFrame frame=new AppletFrame();
    JTabbedPane TabbedPane = new JTabbedPane();
    JPanel Pane= new JPanel();
    JPanel addPane = new JPanel();
    JLabel addphoto = new JLabel();
    JButton photob = new JButton();
    TitledBorder titledBorder1 = new TitledBorder("");
    // Construire l'applet
    public Appletagenda() {
    }

    // Initialiser l'applet
    public void init() {
        try {
            jbInit();
        } catch (Exception e) {
                e.printStackTrace();
        }
    }
    // Initialiser le composant
    private void jbInit()throws Exception{
//-----------------------------this disposition---------------------------//
        this.getContentPane().setBackground(Color.black);
        this.setSize(new Dimension(600,350));
        this.getContentPane().setLayout(new BorderLayout());
//-------------------------------photo------------------------------//
        addphoto.setFont(new java.awt.Font("Arial", Font.BOLD, 15));
        addphoto.setText("Photo");
        addphoto.setBounds(new Rectangle(10,222,200,22));

        photob.setBounds(new Rectangle(490,222, 100,22));
        photob.setFont(new java.awt.Font("Book Antiqua", Font.BOLD, 12));
        photob.setBorder(BorderFactory.createRaisedBevelBorder());
        photob.setText("Charger");
        photob.addActionListener(this);
    //---------------------------TabbedPane-----------------------------------//
        TabbedPane.setTabPlacement(JTabbedPane.TOP);
        TabbedPane.setBackground(SystemColor.inactiveCaptionText);
        TabbedPane.setBorder(BorderFactory.createEtchedBorder());
        TabbedPane.setPreferredSize(new Dimension(700,250));
        //----------------------------Pane---------------------------------------//
        Pane.setBackground(SystemColor.inactiveCaptionText);
        Pane.setBorder(BorderFactory.createEtchedBorder());
        Pane.setPreferredSize(new Dimension(700,50));
        //--------------------------addPane-------------------------------------//
        addPane.setBorder(BorderFactory.createLoweredBevelBorder());
        addPane.setPreferredSize(new Dimension(600,250));
        addPane.setToolTipText("Ajout de coordonnees");
        addPane.setLayout(null);
        addPane.add(photob);
        addPane.add(addphoto);
        TabbedPane.add(addPane,"AJOUT");
        this.getContentPane().add(TabbedPane,java.awt.BorderLayout.CENTER);
        this.getContentPane().add(Pane,java.awt.BorderLayout.NORTH);
    }

/*url pour pouvoire rentree en communication avec la Servlet
je connumique avec la servlet par Object serialiser
Cette fonction qui retourne un urlconnection a pour parametre le
url_pattern du servlet dans le fichier web.xml
*/
public URLConnection getServletConnection(String varcon)
            throws MalformedURLException, IOException {
URL urlServlet = new URL(getCodeBase(),varcon);
URLConnection con = urlServlet.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setRequestProperty("Content-Type","application/x-java-serialized-object");
return con;
}
/* La Fonction Pour l'envoye d'Object et la reception de resultat En Object
Les parametres de cette Fontion sont l'object a envoyer qui de type TObject et
le url_pattern du servlet dans le fichier web.xml,a noté que cette fonction
     appele la fonction getServletConnection().
     */
public Object Envoyer(TObject tobject,String var)throws Exception{
//------envoye de l'object pour le servlet
 URLConnection con = getServletConnection(var);
 OutputStream outstream = con.getOutputStream();
 ObjectOutputStream oos = new ObjectOutputStream(outstream);
 oos.writeObject(tobject);
 oos.flush();
 oos.close();
 //------reception du resultat
InputStream instr = con.getInputStream();
ObjectInputStream inputFromServlet = new ObjectInputStream(instr);
Object result =(Object)inputFromServlet.readObject();
inputFromServlet.close();
instr.close();
return result;
}
//------------------------- Traitement des Evenements -----------------------------
public void actionPerformed(ActionEvent evt){
//---------ActionEvent Pour Button bphoto-------------------------//
       if(evt.getSource()==photob){
       try{
       FileDialog fd=new FileDialog(frame,"Open",FileDialog.LOAD);
       fd.setModal(true);
       fd.show();
       String dir=fd.getDirectory();
       String nom=fd.getFile();
       File fichier=new File(dir,nom);
       RandomAccessFile raf=new RandomAccessFile(fichier,"r");
       int l=nom.length();
       byte b[]=new byte[l];
       String msm="";
       ImageObject imageobject;
       TObject ttobj;
       while(raf.read(b)!=-1){
 /* voila ici c'est la partie la plus interessente en fait j'envoye le fichier par
 paquet de b avec un code(10) different du code de fin(20),
donc pour chaque paquet l'applet creé une communication avec la servlet
le transfer par paquet par l'applet et l'ecriture coté serveur se fait en temps reel
 */
       imageobject= new ImageObject(b,10);
       ttobj = new TObject(imageobject);
       msm = (String) Envoyer(ttobj, "servletagenda");
       }
       /*
       ici je suis sure que le transfer est terminer don l'applet envoye le code
       de fermeture du fichier( chiffre20)
       */
       imageobject=new ImageObject(b,20);
       ttobj=new TObject(imageobject);
       msm=(String)Envoyer(ttobj,"servletagenda");
       new AppletDialog(frame,msm);//la boite de dialog affiche l'etat de l'operation
       raf.close();// fermeture du fichier cote client
       }catch(Exception err){
       new AppletDialog(frame,"Client:"+err);
       }
}
}
}
 le Servlet
package Tombouctou;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.awt.*;
public class Servletagenda extends HttpServlet {
String nom="image.jpg";//un nom donner au fichier
String dir="C:\\Image";// un repertoire chez le serveur
File fichier;
RandomAccessFile raf;// un randonaccessFile
 public void init() throws ServletException {
     try{
     /*
      ici je creé le chifier destinateur
     */
    fichier = new File(dir,nom);
    raf = new RandomAccessFile(fichier, "rw");
     }catch(Exception err){
     }
 }
// Traiter la requête HTTP Post
 public void doPost(HttpServletRequest request, HttpServletResponse response) throws
        ServletException, IOException {
    try {
   response.setContentType("application/x-java-serialized-object");//formatage de la reponse
   //reception de la requette pour la toute premiere invocation
   InputStream  in = request.getInputStream();
   ObjectInputStream  inputFromApplet = new ObjectInputStream(in);
   TObject tobjrecive=(TObject)inputFromApplet.readObject();//recuperation de l'object de type TObject
   //--------------------------//
        try {
                TObject tobj;
                ImageObject img=(ImageObject)tobjrecive.object;
              while(img.code!=20){
                  /* ici aussi la partie clé cote serveur donc pour la premiere
                invocation j'ai un paquet de byte envoyer si c'est pas le code de fermetu(20)
                je l'ecris dans le fichier destinateur, et je contunie a ecrire tant
                que le transfert n'est pas terminer du cote du client, en recevant a chaque fois
                le nouveau paquet....
                  */
                  raf.write(img.Byte);
                  InputStream ins= request.getInputStream();
                  ObjectInputStream obj= new ObjectInputStream(ins);
                  tobj= (TObject)obj.readObject();
                  img=(ImageObject)tobj.object;
              }
                raf.close();//sortie du while donc fermeture du fichier.
                /*
                envoye d'un message pour informer que le fichier est bien sauvegarder
                */
                OutputStream outstr = response.getOutputStream();
                ObjectOutputStream oos = new ObjectOutputStream(outstr);
                oos.writeObject("Image Sauvegarder");
                oos.flush();
                oos.close();
            } catch (Exception err) {
                OutputStream outstr = response.getOutputStream();
                ObjectOutputStream oos = new ObjectOutputStream(outstr);
                oos.writeObject("Erreur_Serveur:"+err);
                oos.flush();
                oos.close();
            }

} catch (Exception err) {
        OutputStream outstr = response.getOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(outstr);
        oos.writeObject("Erreur de doPost:"+err);
        oos.flush();
        oos.close();
                }
    }
 // Nettoyer les ressources
    public void destroy() {
    }
    private void jbInit() throws Exception {
    }
}

j'espers que je suis un peu claire presenetment

merci d'avance a neodante et safisoft

hst!!!


jeudi 13 octobre 2005 à 22:09:02 | Re : applet

neodante

Administrateur CodeS-SourceS
lu,
explications ne rime pas avec code source en général non ?
Ce soir j'ai po le temps de regarder y a trop de code ... j'essaierais ce WE

++




Cette discussion est classé dans : applet, probleme, envoyer


Répondre à ce message

Sujets en rapport avec ce message

Envoyer un message a un autre client via un applet [ par sarani ] Je veux faire un applet qui permettra a deux client connecté sur le meme site de s'envoyer des messages via un applets en temps reel( comme dans le di URGENT !!! Probleme avec une applet !!!!!!!!!!! [ par niglo51 ] Comment faire pour récuperer une image par la methode getimage avec une url lorsque JMStudio envoi ses images ur un port de sortie.Merci de repondre r probleme au chargement de l'applet [ par tazegue ] Salut.J'essaie de faire marcher un applet dans une page internet mais lorsque je lance la page htm j'ai une croix rouge en haut à gauche. je fais ensu Probleme avec applet et cache classloader [ par lesaixol ] Bonjour a tout le monde,j'ai une applet qui permet entre autre de communiquer avec une servlet pour telecharger des fichiers images afin de les affich java : class xxx notfound [ par GMarckofff ] Mon probleme comme vous l'avez déja compris, c'est qu'au moment du chargement de mon applet sur un poste client, j'ai le message class xxx notfound... probleme de configuration [ par lesaixol ] Bonjour,je suis sous windows NT et lorsque je me met sous mon compte utilisateur, je ne peux pas visualiser mon applet avec internet explorer (version Recuperer le contenu d'un dossier web [ par MrEddy ] Salut,Sur mon site intranet, je souhaiterais a travers une applet envoyer des fichiers qui sont stockés sur le serveur ou il y a l'applet et les envoy probleme avec javaMail [ par euchpongiste ] bonjour je voudrait savoir si il est possible de renvoyer un message déjà codé au format MIME , l envoyer dirctement au serveur sans devoir faire une Ptit probleme avec un applet [ par kainblueriver ] Bonjour a tousVoila La situation:Je suis en train de faire un ptit applet diviser en trois partie:-Un ptit jeux de plateforme -Une animation + son-Une Probleme pour visualiser une applet [ par zincben ] Bonjour, je n'arrive pas à visualiser mon applet voici la page web et l'applet: applet2! CODEBASE="E:\java\eclipse\workspace\"CODE=ap


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.