Bonjour.

Je réalise actuellement un programme devant communiquer à travers le réseau avec une autre application (codée en C++ / Qt).

Ne connaissant pas trop Borland, j'ai cherché à apprendre comment communiquer en réseau. Je suis parti sur TServerSocket / TClientSocket. N'arrivant pas à lire correctement les données reçues, j'ai cherché un exemple sur le web et je suis tombé là dessus : http://cpp.developpez.com/telecharge...-un-petit-chat

Mais je me retrouve avec le même problème, ce que le serveur lit n'a rien à voir avec ce qui est écrit par le client.

Voici le code de la réception de donnée :
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
 
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
  AnsiString  DataRecue = "",
              Temp = "",
              ChaineNom = "<Nom>";
  ItVecClients VecIterator;
  int HandleClient = 0;
 
  //Recevoir les données envoyées par un client
  DataRecue = Socket->ReceiveText();
 
  //Si c'est un client qui déclare son nom, alors le rajouter dans la liste
  if(DataRecue.Pos(ChaineNom) != 0)
  {
    Temp = DataRecue.SubString(ChaineNom.Length() + 1, DataRecue.Length());
 
    VecIterator = vecClients.begin();
    while(VecIterator != vecClients.end())
    {
      HandleClient = (*VecIterator).second;
 
      if(Socket->SocketHandle == HandleClient)
      {
        ListBox1->Items->Delete(ListBox1->Items->IndexOf((*VecIterator).first));
        ListBox1->Items->Add(Temp);
        (*VecIterator).first = Temp;
        break;
      }
 
      VecIterator++;
    }
  }
  else
  {
    MemoData->Lines->Add(DataRecue);
  }
}
Quand je tape "azerty", je me retrouve avec "????" en sortie.
Auriez vous une idée du problème ?

Merci d'avance pour votre aide !

OkamiRyuu