Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1642 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [c#] lire plusieurs lignes sur une socket ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c#] lire plusieurs lignes sur une socket ?

n°975531
freds45
Posté le 08-02-2005 à 16:07:29  profilanswer
 

'jour :)
je suis en train de faire une classe en c# qui me permette d'envoyer des mails en attaquant directement le serveur dhcpsmtp [:ddr555].
pour l'instant tout fonctionne bien, il y a juste une petite chose que je n'arrive pas bien a saisir.
 

fred@atlantis:~$ telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 atlantis ESMTP Exim 3.35 #1 Tue, 08 Feb 2005 15:48:31 +0100
EHLO toto
250-atlantis Hello atlantis [127.0.0.1]
250-SIZE
250-PIPELINING
250 HELP
MAIL FROM: <toto@toto.fr>
250 <toto@toto.fr> is syntactically correct
RCPT TO: <moi@free.fr>
250 <moi@free.fr> verified


 
Quand je fais mes commandes "a la main", lors du EHLO sont renvoyees un certain nombre de ligne, nombre variable.
La question, c'est : en c#, je fais comment pour lire toutes ces lignes et detecter la fin de l'envoi de la part du serveur ?
Pour l'instant, j'ai ca :

Code :
  1. private bool sendstring(string toBeSend, bool waitResult, string codeAttendu)
  2. {
  3.   string s="";
  4.     try
  5.     {
  6.       Console.WriteLine(">>"+toBeSend);
  7.       sw.WriteLine(toBeSend);
  8.       sw.Flush();
  9.       if(waitResult)
  10.       {
  11.         s=sr.ReadLine();
  12.         Console.WriteLine("<<"+s);
  13.       }
  14.     }
  15.   catch(Exception ee)
  16.   {
  17.     Console.WriteLine("exception lecture/écriture!" );
  18.   }
  19.   if(waitResult)
  20.     return(getFirstPart(s)==codeAttendu);
  21.   return(true);
  22. }


Je fais juste un ReadLine() sur mon streamreader, mais comment je peux faire pour tout lire et m'arreter ensuite ? J'ai essaye avec sr.Peek(), mais ca ne marche pas :/
Une idee ?
Merci :hello:


Message édité par freds45 le 08-02-2005 à 22:48:07
mood
Publicité
Posté le 08-02-2005 à 16:07:29  profilanswer
 

n°975723
freds45
Posté le 08-02-2005 à 18:32:40  profilanswer
 
n°975855
freds45
Posté le 08-02-2005 à 22:07:35  profilanswer
 
n°975879
gatorette
Posté le 08-02-2005 à 22:45:25  profilanswer
 

Tout d'abord tu trouveras la réponse concernant la fin de l'envoi dans le rfc 821 qui est la référence correspondant le protocole SMTP (et non pas DHCP !).
 

RFC-821 :

The reply text may be longer than a single line; in these cases the complete text must be marked so the sender-SMTP knows when it can stop reading the reply.  This requires a special format to indicate a multiple line reply.
 
The format for multiline replies requires that every line, except the last, begin with the reply code, followed immediately by a hyphen, "-" (also known as minus), followed by text.  The last line will begin with the reply code, followed immediately by <SP>, optionally some text, and <CRLF>.


 
Par contre concernant la possibilité de lire plusieurs lignes je ne peut pas t'aider... mais pourquoi pas faire plusieurs 'ReadLine' ?
 
edit: correction du tag citation


Message édité par gatorette le 08-02-2005 à 22:46:57

---------------
each day I don't die is cheating
n°975883
pascal_
Posté le 08-02-2005 à 22:46:02  profilanswer
 

Lit plusieurs ligne en appelant ReadLine plusieurs fois. Logiquement (jamais testé) ça va finir par retourner une erreur ou lever une exception (voit la doc)...

n°975886
freds45
Posté le 08-02-2005 à 22:51:53  profilanswer
 

gatorette a écrit :

Tout d'abord tu trouveras la réponse concernant la fin de l'envoi dans le rfc 821 qui est la référence correspondant le protocole SMTP (et non pas DHCP !).
 
 
 
Par contre concernant la possibilité de lire plusieurs lignes je ne peut pas t'aider... mais pourquoi pas faire plusieurs 'ReadLine' ?
 
edit: correction du tag citation


 
ah oui exact, j'avais même pas fait attention :D
merci!!!!! :love:


Message édité par freds45 le 08-02-2005 à 22:54:04
n°975887
freds45
Posté le 08-02-2005 à 22:53:01  profilanswer
 

pascal_ a écrit :

Lit plusieurs ligne en appelant ReadLine plusieurs fois. Logiquement (jamais testé) ça va finir par retourner une erreur ou lever une exception (voit la doc)...


 
j'avais essayé, mais ca bloque, ca n'evolue pas.
il attend qquechose sur la socket, et ya rien qui vient :/
enfin avec la solution proposée au dessus, ca va aller :sol: !


Message édité par freds45 le 08-02-2005 à 22:53:20

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [c#] lire plusieurs lignes sur une socket ?

 

Sujets relatifs
lire les attributs d'une divLire un .htm qui appelle un .xml avec Firefox
génération de tableaux et de lignesme manque kelke lignes!!!!
liste horizontale sur plusieurs lignes en CSS ?[C / Linux] Jeu bataille navale avec Socket
Fiabiliser transfert par socketImpression en CSS et lignes coupées
optimisation de la recuperationd'image Rgb par socket 
Plus de sujets relatifs à : [c#] lire plusieurs lignes sur une socket ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR