Comment envoyer des bufferedImage avec une connexion udp?

Comment envoyer des bufferedImage avec une connexion udp? - Java - Programmation

Marsh Posté le 12-12-2004 à 21:23:44    

Bonjour,
 
je voudrais savoir comment on crée le client et le serveur,
 
j'ai fait un client serveur/client pour echanger du texte en udp
mais je ne sais pas comment on fait pour echanger des images...
 
 

Code :
  1. private class Client extends Thread {
  2.           public void run(){
  3.           try{
  4.            InetAddress address = InetAddress.getByName("127.0.0.1" );
  5.            int port = 1234;
  6.          
  7.            Image imagetest = new ImageIcon(new java.net.URL
  8.                ("file:///C:/Image.png" )).getImage();
  9.    
  10.          
  11.            BufferedImage bI = new BufferedImage (
  12.                   imagetest.getWidth(null),
  13.                   imagetest.getHeight(null),
  14.                   BufferedImage.TYPE_INT_RGB );
  15.                Graphics g = bI.createGraphics();
  16.                g.drawImage(imagetest,0,0,null);
  17.                g.dispose();
  18.            byte[] data1 = ((java.awt.image.DataBufferByte) bI.getRaster
  19.                                        ().getDataBuffer()).getData();
  20.            int w = bI.getWidth();
  21.            int h = bI.getHeight();
  22.            int[] rgbs=new int[w*h];
  23.      
  24.          DatagramPacket p = new DatagramPacket(data1, w*h, address,
  25.                                                             port);
  26.  
  27.          DatagramSocket s = new DatagramSocket();
  28.               s.send(p);
  29.                    }
  30.           catch(Exception variable)
  31.            {System.out.println("Erreur pour envoyer le socket" );}
  32.        }


 
deja le serveur ne marche pas.... Erreur pour envoyer le socket
 
 

Code :
  1. private class Serveur extends Thread {
  2.             public void run() {
  3.             byte[] buffer = new byte[1024];
  4.                      
  5.             DatagramPacket p = new DatagramPacket(buffer, 1024);
  6.             try {DatagramSocket s = new DatagramSocket(1234);
  7.                 while (true) {
  8.                     s.receive(p);
  9.                                    
  10.                     {
  11.                    ImageIcon ImageTest;
  12.                    ImageTest=new ImageIcon(buffer, 0, 0, p.getLength());
  13.                     }*/
  14.                     System.out.println("Paquet recu : message = " + ch + " - envoyeur = " + p.getAddress().getHostName() +
  15.                                        " - port = " + p.getPort());
  16.                
  17.                 }
  18.             }
  19.              catch(SocketException se)
  20.                         {System.out.println("Erreur" );}
  21.              catch(SecurityException se)
  22.                         {System.out.println("Erreur" );}
  23.              catch(IOException se)
  24.                         {System.out.println("Erreur" );}
  25.             }
  26.     }


 
 
 
Je n'ai plus idée, je suis obligé de passer par une connexion udp.....
 
HELP!!!!!!!!!!!!!!!!!

Reply

Marsh Posté le 12-12-2004 à 21:23:44   

Reply

Marsh Posté le 13-12-2004 à 11:01:03    

pkoi tu envois pas directement le contenu du fichier image ? pkoi tu passes par un BufferedImage ?
 
ensuite, tu dis que ca marche pas, mais tu ne dis pas ce qui ne marche pas. Si tu as un message d'erreur, donne le.

Reply

Marsh Posté le 13-12-2004 à 11:09:57    

.. ok pour l'envoi en tant que tableau de byte.
par contre , dans ton datagrampacket, je vois pas pourquoi tu fais un w*h pour avoir la taille.
c'est la taille du tableau que tu dois passer. (data1.length)
 
et j ai pas regarder la doc mais ca ma a l aitr un peu casanier la maniere dont tu recuperer data1.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed