Probleme code C#

AliciaStouder Messages postés 2 Date d'inscription vendredi 22 mai 2009 Statut Membre Dernière intervention 3 juin 2009 - 2 juin 2009 à 08:54
AliciaStouder Messages postés 2 Date d'inscription vendredi 22 mai 2009 Statut Membre Dernière intervention 3 juin 2009 - 3 juin 2009 à 03:58
Bonjour,

J'ai fait 2 programmes serveur-clients, l'un pour envoyer un fichier (Client->serveur) et l'autre pour se faire envoyer un fichier ( Client (demande fichier)->Serveur (envoie fichier)->Client). Je voudrais assembler les 2 fichiers pour n'en faire plus qu'un. Voila mon probleme:

Partie Serveur:
...
 NetworkStream stream = client.GetStream();
StreamReader SR= new StreamReader(stream);
string word = SR.ReadLine();
 switch(word)
{
     case "L":
          {
                    Console.WriteLine("Transfert request from the client");
                    //Traitement pour recevoir un fichier                           
          }                   
    case "S":
        {
                    Console.WriteLine("File Reception from the client");
                     //Traitement pour demande de fichier et envoie
         }
}

Partie Client:

Console.WriteLine("Send or load a file? (S/L)");
      switch (Console.ReadLine())
            {
                 case "L":
                    { 
                        SW.WriteLine("L");
                        Traitement pour demande de fichier

                    }
                case "S":
                    {
                         SW.WriteLine("S");
                         Traitement pour envoie de fichier
                     }
           }

Lorsque je réponds "S" a "Send or load a file?", tout se passe bien le fichier est envoyé et reçu sans problemes ! Mais lorsque je reponds L , L n'arrive jamais dans word (du serveur) et le serveur reste donc bloque sur le switch, du cote client tout se passe correctement! Pour info, je bosse sous Visual Studio Express 2008

Merci d'avance pour votre aide et si vous avez besoin de plus d'info, n'hesitez pas!

Alicia

1 réponse

AliciaStouder Messages postés 2 Date d'inscription vendredi 22 mai 2009 Statut Membre Dernière intervention 3 juin 2009
3 juin 2009 à 03:58
J'ai peut-être une question un peu plus explicite:

Programme Client:

case "S":
   {
          try
          {
                 Down_File_Client.Client myClient = new Down_File_Client.Client();
                 myClient.ConnectToServer1(Port, Down_File_Client.Client.GetHostAddress());
                 Console.WriteLine("Connected on " + Host + " : " + Port);
                 StreamWriter SW = new StreamWriter(myClient.Client_NS);                                   
                 SW.WriteLine("S");

                 Console.WriteLine("Directory of the file to send:");
                 string FileName = Console.ReadLine();
                  Console.WriteLine("Name of the copy on the server");
                  string NewFileName = Console.ReadLine();                          (1)
                  SW.WriteLine(NewFileName);
            .....
            }
   }

Pourquoi S (de "SW.WriteLine("S")") n'est envoyé a mon serveur qu'après l'étape 1 et non directement quand l'instruction est écrite?

Merci d'avance!!
0
Rejoignez-nous