IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Problème d'envoi de trames


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Par défaut Problème d'envoi de trames
    Bonjour a tous,

    Je suis entrain de faire un client mail pour les cours et je me heurte a un problème depuis bientot 1 mois sans en trouver la solution...
    Je vous explique: Lorsque que je me connecte a un serveur (SMTP, POP ou IMAP), le programme ouvre la connection puis se bloque..
    J'ai fais une capture avec Ethereal qui en gros me dit que il y a un "TCP CHECK SUM INVALIDE". Cela arrive just après avoir reçu la trame [ACK,SYN] du serveur (la 1ère donc).
    J'ai essayer sous windows, linux, plusieurs pc, plusieurs type de réseaux, plusieurs serveurs, il n'y a rien a faire!

    Je m'en remet donc a vous. Je vous mets ma classe qui permet d'envoyer un mail:
    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
     
    package mailer;
     
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import javax.swing.JTextArea;
    /**
     *
     * @author  skeltryx
     */
    public class CtrEnvoyerMail extends javax.swing.JFrame {
     
        private Mailer mailer;
        private Compte compte;
        private MailEnvoyer mail;
        private static BufferedReader in;
        private static PrintWriter out;   
     
        /** Creates a new instance of CtrEnvoyerMail */
        public CtrEnvoyerMail(Mailer m, Compte c, MailEnvoyer mail) {
            this.lierMailer(m);
            this.lierCompte(c);
            this.lierMail(mail);
            this.setVisible(true);
            initComponents();
     
            try{Thread.sleep(500);} catch(Exception e){}
     
            try{
     
                Socket socket = new Socket(compte.getServeurSmtp().getHost(), 25);
                 out = new PrintWriter(socket.getOutputStream());
                 in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                if (socket.isConnected() == false) {
                    jTextArea1.setText("Erreur de connection !\n");
                }
                else {
     
                 jTextArea1.setText("Connection établie !\n");
                 // crée les in et out pour lire et écrire
     
                 String reponse = receive();
                 jTextArea1.setText(jTextArea1.getText() + reponse + "\n");
     
                 send("HELO "+compte.getServeurSmtp().getHost());
                 jTextArea1.setText(jTextArea1.getText() + "HELO "+compte.getServeurSmtp().getHost() + "\n");
     
                 reponse = receive();
                 jTextArea1.setText(jTextArea1.getText() + reponse + "\n");
     
     
                 send("MAIL FROM: <" + compte.getMail() + ">");
                 jTextArea1.setText(jTextArea1.getText() + "MAIL FROM: <" + compte.getMail() + ">" + "\n");
     
     
                 reponse = receive();
                 jTextArea1.setText(jTextArea1.getText() + reponse + "\n");
     
                 send("RCPT TO: <" + mail.getDestinataire() + ">");
     
                 jTextArea1.setText(jTextArea1.getText() + "RCPT TO: " + mail.getDestinataire() + "\n");
     
     
                 reponse = receive();
                 jTextArea1.setText(jTextArea1.getText() + reponse + "\n");
     
                 send("DATA");
                 jTextArea1.setText(jTextArea1.getText() + "DATA" + "\n");
     
     
                 send("Subject: " + mail.getSujet());
                 jTextArea1.setText(jTextArea1.getText() + "Subject: " + mail.getSujet() + "\n");
     
     
                 StringTokenizer tokenizer = new StringTokenizer(mail.getBody(), "\n");
                 while (tokenizer.hasMoreTokens())
                    send(tokenizer.nextToken());
     
     
                 send(".");
                 jTextArea1.setText(jTextArea1.getText() + "\r\n.\r\n" + "\n");
     
     
                 reponse = receive();
                 jTextArea1.setText(jTextArea1.getText() + reponse + "\n");
     
                 out.flush();
                 // ferme les connexions, puis le client
                 out.close();
                 in.close();
                 socket.close();             
                }
     
          }
     
            catch (Exception e){
                //jTextArea1.setText(e.getMessage());            
                /*if(e instanceof UnknownHostException)
                                    System.out.println("Serveur inconnu");
                            else if(e instanceof ConnectException)
                                    System.out.println("Connection impossible au serveur");
                            else
                                    System.out.println(e.getClass());
                            System.exit(0);*/
            }    
        }
     
          //methode qui recoit les information du servveur
         private static String receive() throws IOException {
             String line = in.readLine();
             return line;
         }
     
         //methode qui envoi des infos au serveur
         private static void send(String s) {
             out.print(s);
             out.print("\n");
             out.flush();
     
         }   
     
        private void lierCompte(Compte c){
            this.compte = c;
        }
     
        private void lierMailer(Mailer m){
            this.mailer = m;
        }
     
        private void lierMail(MailEnvoyer m){
            this.mail = m;
        }
        // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
        private void initComponents() {
            jProgressBar1 = new javax.swing.JProgressBar();
            jScrollPane1 = new javax.swing.JScrollPane();
            jTextArea1 = new javax.swing.JTextArea();
     
            setTitle("Envoyer un mail");
            setEnabled(false);
     
            jTextArea1.setColumns(20);
            jTextArea1.setRows(5);
            jScrollPane1.setViewportView(jTextArea1);
     
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jProgressBar1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 343, Short.MAX_VALUE))
                    .addContainerGap(10, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(31, 31, 31)
                    .addComponent(jProgressBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(34, 34, 34)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(29, Short.MAX_VALUE))
            );
            pack();
        }// </editor-fold>                        
     
     
     
     
        // Variables declaration - do not modify                     
        private javax.swing.JProgressBar jProgressBar1;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTextArea jTextArea1;
        // End of variables declaration                   
     
    }
    J'utilise Netbeans 5.5 et JDK 1.6.
    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    quel rapport avec netbeans ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Par défaut
    je l'ai programmé avec.. si je me suis trompé de quatégorie désolé, je dois le mettre ou?

  4. #4
    Membre éprouvé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Par défaut
    Déplacé dans Général/API/IO.

    Valère

Discussions similaires

  1. Problème d'envoi de trame
    Par vallgui dans le forum WinDev
    Réponses: 8
    Dernier message: 22/05/2007, 09h36
  2. Problème d'envoi de trames
    Par skeltryx dans le forum Langage
    Réponses: 2
    Dernier message: 22/03/2007, 15h16
  3. Problème de récéption ou d'envoi de Trame UDP
    Par sniperseb dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 10/04/2006, 23h11
  4. Problème d'envoie de text avec les sockets
    Par Coussati dans le forum Web & réseau
    Réponses: 6
    Dernier message: 16/09/2005, 10h26
  5. [HTML] Problème d'envoi de formulaire
    Par autumn319 dans le forum ASP
    Réponses: 26
    Dernier message: 03/09/2003, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo