Partage
  • Partager sur Facebook
  • Partager sur Twitter

Transfert image avec TFTP

Problème d'écriture avec FileOutputStream

    5 juin 2020 à 21:37:47

    Bonjour !

    Pour mes cours je dois créer une mini-appli réseau avec le protocole TFTP en JAVA. On doit donc coder un client et interagir avec un serveur Pumpkin. J'arrive à transférer des messages sans problèmes (fichiers .txt), mais lorsqu'il s'agit d'images, j'ai des problèmes ...

    Pour récupérer les fichiers j'utilise FileOutputStream. J'ai lu que pour les images on pouvait aussi utiliser FileOutputStream, mais lorsque j'essaie d'ouvrir l'image transférée, mon ordi me met ça :

    Je n'arrive pas à régler ce problème si quelqu'un a une idée ...

    Pour récupérer l'image je fais ceci :

    FileOutputStream fos = new FileOutputStream("/chemin/" + fichier);

    Que je passe en paramètre dans une fonction ReceivePacket() qui récupère les paquets DATA du serveur Pumpkin :

    private int receivePacket(byte[] zoneReception, DatagramSocket socket, FileOutputStream fos) throws IOException {

    DatagramPacket receptionPacket = new DatagramPacket(zoneReception,zoneReception.length);
    socket.setSoTimeout(5000);
    try {
    socket.receive(receptionPacket);
    }catch (SocketTimeoutException ste){
    System.err.println("Temps expiré : 10s " + ste);
    }catch (SocketException e){
    System.err.println(e);
    }

    for(int i=0; i<516; i++){
    if(zoneReception[i]!=-1)
    fos.write(zoneReception[i]);
    }


    fos.flush();

    portServeur = receptionPacket.getPort();
    System.out.println("Message reçu : " + new String(receptionPacket.getData())+"\n");

    return receptionPacket.getLength();

    }
    Si quelqu'un sait d'ou ça vient ... merci d'avance ! 

    -
    Edité par EdouardBronnert 5 juin 2020 à 23:20:57

    • Partager sur Facebook
    • Partager sur Twitter
      12 juin 2020 à 10:06:43

      J'ai trouvé le problème, je le poste pour ceux que ça pourrait intéresser : il ne faut pas prendre les 4 premiers bytes d'en-tête du paquet DATA (ça ne pose pas de problème pour les fichier .txt, mais pour les images si), et il ne faut pas faire le if(zoneReception[i]!=-1).

      • Partager sur Facebook
      • Partager sur Twitter

      Transfert image avec TFTP

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown