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 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 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 : 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); }
Partager