Entwickler-Ecke

Netzwerk - Sever Problem bei empfangen der bytes


DellaScribvers - Fr 24.04.09 23:11
Titel: Sever Problem bei empfangen der bytes
Hallo

Ich habe bei diesem Programmausschnitt das Problem das er mir nur die letzte zahl oder Buchstaben in das textfeld reinschreibt. und ich verstehe nicht warum . woran liegt der Fehler.

Zu erst hat er immer gesagt das es nicht Thread sicher ist wenn ich einen string auf die textbox schreibe . aber das habe ich mit der Invoke gelöst .

Aber bei diesen Problem weiß ich nicht weiter.


C#-Quelltext
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:
31:
32:
33:
34:
35:
36:
37:
38:
39:
public void OnDataReceived(IAsyncResult asyn)
        {



            try
            {
                CSocketPacket theSockId = (CSocketPacket)asyn.AsyncState;

                // Empfange die Daten
                int iRx = 0;
                iRx = theSockId.thisSocket.EndReceive(asyn);
                char[] chars = new char[iRx + 1];
                Decoder dec = Encoding.UTF8.GetDecoder();

                int charLen = dec.GetChars(theSockId.dataBuffer, 0, iRx, chars, 0);

              string szData = new string(chars);



              textBoxReceive.Invoke(new MethodInvoker(delegate() { textBoxReceive.Text = szData; }));






              WaitForData(m_socAccept);
            }
            catch (ObjectDisposedException)
            {
                System.Diagnostics.Debugger.Log(0"1""OnDataReceived: Socket has been closed!\n");
            }
            catch (SocketException se)
            {
                MessageBox.Show(se.Message);
            }
        }