BOnjour,
Je fais une application client / serveur. Sur mon serveur, je me connecte à une base de données qui enregistre tous mes enregistrement dans un fichier XML. Jusque là tout va bien (mon XML est correcte). Je l'envoi à mon client. Là tout foire, je recoi les données mais je ne peux pas les lire correctement. Cela plusieurs heures que je recherche le problème mais sans succès.
Code Client:
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
private void recevoirposition(string nom)
        {
            byte[] bufferposition = System.Text.Encoding.Default.GetBytes("Position"+nom);
 
            Client.Send(bufferposition, SocketFlags.None);
            // Creation d'un tableu de byte pour contenir les donnés reçues
            Byte[] bufferposition2 = new Byte[10000];
            // on met les bytes recuperés dans le tableau
 
            int taille=Client.Receive(bufferposition2);
 
            //On traduit les Bytes en caractère ASCII lisible
            string data = null;
            data = Encoding.ASCII.GetString(bufferposition2);
            DataSet ds = new DataSet();
            MemoryStream ms = new MemoryStream();
            ms.Write(bufferposition2, 0, taille);
            ds.ReadXml(ms,XmlReadMode.ReadSchema);
 
            if (data.Substring(0, 8) == "Position")
            {
                position.Text = data.Remove(0, 8);
            }
 
        }
Code Serveur:
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
private void donnerposition(Socket cl, string professeur)
        {
            // Objet connection
            //SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=vestiaires;Persist Security Info=True;User ID=**;pwd=*******");
            SqlConnection myConnection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=***********;Integrated Security=True;Connect Timeout=30;User Instance=True");
            myConnection.Open();
            // Objet Command
            SqlCommand command = new SqlCommand("Select * FROM Position WHERE [Professeur]='" + professeur + "';", myConnection);
            // Objet DataReader
            SqlDataReader reader = command.ExecuteReader();
            DataTable table = new DataTable();
            int fieldCount = reader.FieldCount;
            for (int i = 0; i < fieldCount; i++)
            {
                table.Columns.Add(reader.GetName(i), reader.GetFieldType(i));
            }
            table.BeginLoadData();
            object[] values = new object[fieldCount];
            while (reader.Read())
            {
                reader.GetValues(values);
                table.LoadDataRow(values, true);
            }
            table.EndLoadData();
            DataSet ds = new DataSet();
            ds.Tables.Add(table);
            MemoryStream ms = new MemoryStream();
            ds.WriteXml(ms,XmlWriteMode.WriteSchema);
            cl.Send(ms.GetBuffer(),0,(int)ms.Position,SocketFlags.None);
        }