Bonjour,

je cherche actuellement à créer un serveur tcp/IP sur lequel viennent se connecter des clients. Je l'avais déjà fait en visual c++ et je cherche à faire l'équivalent en BCB 6

Pour le serveur j'ai utilisé le composant TTcpServer dans une application simple avec une form1 et j'ai ajouter un code de test dans l'accept :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
void __fastcall TForm1::TcpServer1Accept(TObject *Sender,       TCustomIpClient *ClientSocket)
{
  Application->MessageBox("lkj","lkj",0);
}
coté client j'ai fais de même dans une application avec une form1 avec un TTcpClient, ça marche, j'ai donc validé le fait que le serveur marche.



Maintenant je voudrais faire la même chose avec un client en application console ( j'ai créé un projet C++ appli console VCL).
problème : comment utiliser le TTcpClient sans "le poser" sur la Form1 (puisque c'est une application console, et donc il n'y a pas de form ) ?

j'ai tenté d'inclure le seul .hpp dans lequel se trouvait une déclaration du TTcpClient

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
#include <sockets.hpp>
mais lorsque j'essaye de créer un objet :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
void ConnectToELPServer(void)
{
 TTcpClient *a;
 a = new TTcpClient();
 a->RemoteHost="127.0.0.1";
 a->RemotePort=2205;
 
 AnsiString buffer;
 buffer="coucou je suis en vie";
 a->SendBuf(&buffer,10,0);
 
}
il se produit une erreur à la compilation :

[C++ Erreur] Unit1.cpp(72): E2285 Impossible de trouver une correspondance pour 'TTcpClient::TTcpClient()'
en fait à la création de l'objet, le constructeur attend un type précis.

extrait du .hpp :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
/* TCustomIpClient.Create */ inline __fastcall virtual TTcpClient(Classes::TComponent* AOwner) : TCustomIpClient(AOwner) { }
je dois donc lui donner un TComponent si je comprends bien ?
mais ... qu'est-ce qu'il en fait et qu'est-ce que je peux bien lui donner ???