Esempio n. 1
0
        private void actionListenAndReceive()
        {
            try
            {
                while (true)
                {
                    //Creation de la socket du serveur
                    localSocketListening = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

                    //Lier la socket au point de communication voulue
                    localSocketListening.Bind(targetAdress);


                    //Mettre en ecoute le serveur
                    localSocketListening.Listen(1);


                    //Mettre le serveur en attente de connexion
                    Socket clientSocket = localSocketListening.Accept();

                    //if (clientSocket.Connected == true)
                    //MessageBox.Show("Nouvelle connexion reussite avec " + clientSocket.AddressFamily.ToString());

                    int index = 0;
                    int bytes = 0;

                    //Verifier si le dossier temp existe
                    DirectoryInfo dir = new DirectoryInfo(Application.StartupPath + @"\Temp");
                    if (!dir.Exists)
                    {
                        dir.Create();
                    }

                    //Verifier si le fichier TXT temp existe
                    string fileTempPath = Application.StartupPath + @"\Temp\datasTemp.xml";
                    //  File.Create(fileTempPath);

                    FileStream   fs     = new FileStream(fileTempPath, FileMode.Create);
                    StreamWriter writer = new StreamWriter(fs);

                    byte[] buffer;

                    buffer = new byte[5000];
                    int tailleALire;

                    clientSocket.Receive(buffer);
                    tailleALire = Convert.ToInt32(ASCIIEncoding.ASCII.GetString(buffer));
                    buffer      = new byte[tailleALire * 8];
                    clientSocket.Receive(buffer);

                    writer.Write((ASCIIEncoding.ASCII.GetString(buffer)).ToCharArray());

                    /*do
                     * {
                     *  try
                     *  {
                     *      bytes = 0;
                     *
                     *      //Recevoir une reponse ...
                     *      buffer = new byte[512 * 1024];
                     *
                     *      bytes = clientSocket.Receive(buffer, buffer.Length, 0);
                     *      clientSocket.re
                     *      //Ecrire les bytes dans un fichier texte temp
                     *      //writer.Write(buffer, index, bytes);
                     *      writer.
                     *      index += bytes;
                     *      if (bytes == 0)
                     *          break;
                     *  }
                     *  catch { }
                     *
                     *
                     *
                     * } while (bytes > 0);*/

                    writer.Close();
                    fs.Close();
                    writer = null;
                    fs     = null;

                    //Recuperer les objets sérialises du codage XML
                    this.obj = new ObjectsToSerialize();
                    this.obj = obj.Deserialise(fileTempPath);


                    //Marquer la presence de données
                    this.receivedDatas = true;

                    //Fermer la socket d'ecoute et de reception
                    this.localSocketListening.Close();

                    //Supprimer le fichier temp
                    File.Delete(Application.StartupPath + @"/Temp/datasTemp.xml");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("ERREUR ListenAndReceive : " + ex.Message);
                localSocketListening.Close();
                threadListenAndReceive.Abort();
                this.receivedDatas = false;
            }
        }
Esempio n. 2
0
        private void actionListenAndReceive()
        {
            try
            {
                while (true)
                {
                    //Creation de la socket du serveur
                    localSocketListening = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

                    //Lier la socket au point de communication voulue
                    localSocketListening.Bind(targetAdress);

                    //Mettre en ecoute le serveur
                    localSocketListening.Listen(1);

                    //Mettre le serveur en attente de connexion
                    Socket clientSocket = localSocketListening.Accept();

                    //if (clientSocket.Connected == true)
                      //MessageBox.Show("Nouvelle connexion reussite avec " + clientSocket.AddressFamily.ToString());

                    int index = 0;
                    int bytes = 0;

                    //Verifier si le dossier temp existe
                    DirectoryInfo dir = new DirectoryInfo(Application.StartupPath + @"\Temp");
                    if (!dir.Exists)
                        dir.Create();

                    //Verifier si le fichier TXT temp existe
                    string fileTempPath = Application.StartupPath + @"\Temp\datasTemp.xml";
                  //  File.Create(fileTempPath);

                    FileStream fs = new FileStream(fileTempPath,FileMode.Create);
                    StreamWriter writer = new StreamWriter(fs);

                    byte[] buffer;

                    buffer = new byte[5000];
                    int tailleALire;

                    clientSocket.Receive(buffer);
                    tailleALire = Convert.ToInt32(ASCIIEncoding.ASCII.GetString(buffer));
                    buffer = new byte[tailleALire*8];
                    clientSocket.Receive(buffer);

                    writer.Write((ASCIIEncoding.ASCII.GetString(buffer)).ToCharArray());

                    /*do
                    {
                        try
                        {
                            bytes = 0;

                            //Recevoir une reponse ...
                            buffer = new byte[512 * 1024];

                            bytes = clientSocket.Receive(buffer, buffer.Length, 0);
                            clientSocket.re
                            //Ecrire les bytes dans un fichier texte temp
                            //writer.Write(buffer, index, bytes);
                            writer.
                            index += bytes;
                            if (bytes == 0)
                                break;
                        }
                        catch { }

                    } while (bytes > 0);*/

                    writer.Close();
                    fs.Close();
                    writer = null;
                    fs = null;

                    //Recuperer les objets sérialises du codage XML
                    this.obj = new ObjectsToSerialize();
                    this.obj = obj.Deserialise(fileTempPath);

                    //Marquer la presence de données
                    this.receivedDatas = true;

                    //Fermer la socket d'ecoute et de reception
                    this.localSocketListening.Close();

                    //Supprimer le fichier temp
                    File.Delete(Application.StartupPath + @"/Temp/datasTemp.xml");

                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("ERREUR ListenAndReceive : " + ex.Message);
                localSocketListening.Close();
                threadListenAndReceive.Abort();
                this.receivedDatas = false;
            }
        }