Bonjour,
Je suis entrain de mettre en place une application client serveur. Le serveur ( partie hebergé ) est en C++ non managé ( pour une plus grande compatibilité ) et le client est en Csharp. Le serveur est constament en attente de connexion, dés qu'il reçoit la commande ##FILE## il est censé renvoyer d'autres informations comme la taille du fichier souhaité mais il ne renvoit rien.
Pour me connecter au serveur j'utilise une socket ( en csharp ) :
Socket MySock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
MySock.Connect(ip, Convert.ToInt32(port));
this .Invoke( new WriteLog (WriteLogText), "Connectection à l'hote réussie.");
//==========================================
// Envoie de la demande de transaction
//==========================================
byte[] buffer = new ASCIIEncoding().GetBytes("##FILE##");
MySock.Send(buffer);
this .Invoke( new WriteLog (WriteLogText), "Envoie de la demande.");
//==========================================
// Récupere la réponse
//==========================================
NetworkStream nst = new NetworkStream(MySock);
StreamReader sr = new StreamReader(nst);
string reponse = sr.ReadToEnd();
Or reponse est toujours null.
Pour le code du serveur ( en C++ non managé ) :
while (1)
{
cs=accept(s,NULL,NULL);
if (cs!=INVALID_SOCKET)
{
while ((recv(cs,msg,300,0))>0)
{
if (strcmp(msg,"##FILE##")==0) // si la commande envoyé est ##FILE##
{
w=fopen("Boom.vip","rb");
fseek (w, 0, SEEK_END);
long size = ftell(w);
fseek(w,0,SEEK_SET);
send(cs,"##FILESIZE##",12,0);
send(cs,(const char*)size,sizeof(size),0);
send(cs,"#Begain#",8,0);
Je vous epargne tout l'aspect socket du C++
Vous pouvez trouver le code complet ici : http://phpdebutant.org/wall4468.php
Pourquoi dans mon programme en csharp je ne reçoit rien ?
Merci d'avance pour votre aide
