Bonjour à tous,
j'ai réalisé un applet qui me permet d'afficher une vidéo sous la forme d'une succession d'image jpg.
Ces images sont récupérées via la classe URL sur un script php qui fait l"interface vers une appli C++.

Je souhaite désormais supprimer cet intermédiaire php pour des raisons évidente de performance. J'ai donc commencé une classe socket pour mon applet. La socket est local donc à priori pas de problème de sécurité:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37
38
39
40
41
42
43
44
45
46
47
48
public class DPSocket implements Runnable {
 
    private Thread threadSocket = null;
    private Socket m_socket;
    private DataInputStream m_dis;
    private DataOutputStream m_dos;
    private boolean comOk = false;
    private int ticket;
 
    public void openConnexion(String address,int port,int ticket)
    {
        try{
            threadSocket = new Thread(this);
            threadSocket.start();
            m_socket    = new Socket(address, port);
            m_dis       = new DataInputStream(m_socket.getInputStream());
            m_dos       = new DataOutputStream(m_socket.getOutputStream());
            m_socket.setSoTimeout(10000);
            this.ticket = ticket;
        }catch(Exception e){
            System.err.println("Erreur connexion : " + e.getMessage());
        }
    }    
    public void setQuality(int qual)
    {
        char numOrdre = (char)(83);
        try{
            m_dos.writeByte(numOrdre);
            this.sendTicket();
            m_dos.writeInt(qual);
        }catch(Exception e){
            System.err.println("Erreur émission qualité : " + e.getMessage());
        }
    }
    private void sendTicket()
    {
        try{
            m_dos.writeInt(this.ticket);
        }catch(Exception e){
            System.err.println("Erreur envoi ticket : " + e.getMessage());
        }
    }
 
    @Override
    public void run() {
 
    }
}
Cette classe est ensuite instanciée comme suis dans ma classe DpJPlayer qui est la classe principale de mon appli (c'est juste un extrait , pour faire plus simple) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
public class DPJplayer extends Applet implements Runnable
{
 
    public void init() 
    {
        // Pause pour laisser le temps à la page de se charger. Sinon ordre de requete non exécuté
        try{Thread.sleep(2000);}catch(InterruptedException e){}
 
        Date D 			= new Date();
        dpSocket 		= new DPSocket();
        oldTimestamp 	= D.getTime();
        // Récupération des paramètres
        //...
		//
 
        //Sans OK , avec marche plus
        dpSocket.openConnexion("localhost", 34000,Integer.parseInt(this.ticket));
        //Définition de la couleur de fond
        setBackground(new Color(207,209,220));
    }
 
    /**
     *Démarrage du thread
     * @Override
     **/
    public void start()
    {
        if(threadPlayer == null)
        {
            threadPlayer = new Thread(this);
            threadPlayer.start();
            stopLecture = false;
        }
    }
 
    /**
     * Execution du programme
     * @return void
     */
    public void run()
    {
        while(threadPlayer!=null && this.stopLecture == false)
        {
            dpSocket.setQuality(10);
			//Chargement des images
			// ...
			//
        }
    }
 
    /**
     * Affichage
     * @param g
     * @return void
     */
    public void paint(Graphics g)
    {
        //
		//...
		//Divers manip avant affichage
        g.dispose();
        this.imageloaded = true;
 
    }
 
    public void update(Graphics g)
    {
        paint(g);
    }
}
Le problème est qu' à partir du moment ou j'instancie ma classe de socket , mon applet ne fonctionne plus correctement (il n'affiche plus d'image) .

N'étant pas développeur JAVA , j'ai sans doute loupé quelque chose d'évident mais je n'arrive pas à voir quoi