Bonjour,

J'ai un client TCP qui envoie un string à un serveur, il recoit la string mais je n'arrive pas à répondre au client (j'utilise Indy9).
Le client ne reçoit rien avant le timeout et la méthode Send du serveur renvoie 0 ce qui veut dire qu'il n'a rien envoyé.
Je voulais savoir pourquoi il n'a pas pu envoyer les données et comment y remédier.

Voici le code que j'ai dans la méthode execute du serveur:

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
procedure TForm1.Execute(AContext: TIdContext);
begin
   //Reception classique
   StringRecv:=AContext.Connection.IOHandler.ReadLn(#$D#$A'.'#$D#$A);
   Memo.Lines.Add('Serveur: Message reçu:'+StringRecv);
 
   //Envoi de la réponse
   StringStream:=TStringStream.Create('essai');
   try
      i:=AContext.Binding.Send(ToBytes(StringStream.DataString), 
                                         StringStream.Size);
      Memo.Lines.Add('nb byte envoyé: '+IntToStr(i)+'.');
      if i = 0 then
         Memo.Lines.Add('Serveur n''a rien envoyé.')
      else
         Memo.Lines.Add('Serveur a envoyé: '+StringStream.DataString+'.');
   finally
      StringStream.Free;
   end;
end;
Merci pour votre aide.