NetworkStream BeginRead / EndRead

Ich bin wirklich neu in C# zu Programmieren und entwickle ich eine Anwendung basierend auf einem TcpClient.

Ich würde gerne wissen, wie BeginRead & EndRead, ich habe schon gelesen das MSN-Dokumentation, aber nicht helfen.

Habe ich diese :

    private void Send()
    {
        TcpClient _client = new TcpClient("host", 80);
        NetworkStream ns = _client.GetStream();
        ns.Flush();
        / ...
        ns.Write(buffer, 0, buffer.Length);

        int BUFFER_SIZE = 1024;
        byte[] received = new byte[BUFFER_SIZE];
        ns.BeginRead(received, 0, 0, new AsyncCallback(OnBeginRead), ns);
    }

    private void OnBeginRead(IAsyncResult ar)
    {
        NetworkStream ns = (NetworkStream)ar.AsyncState;
        int BUFFER_SIZE = 1024;
        byte[] received = new byte[BUFFER_SIZE];
        string result = String.Empty;

        ns.EndRead(ar);

        int read;
        while (ns.DataAvailable)
        {
            read = ns.Read(received, 0, BUFFER_SIZE);
            result += Encoding.ASCII.GetString(received);
            received = new byte[BUFFER_SIZE];
        }
        result = result.Trim(new char[] { '\0' });
        //Want to update Form here with result
    }

Wie kann ich eine Form-Komponente mit Ergebnis ?

Danke für die Hilfe.

Ist dies Winforms?
Ja, es ist WinForms.
Ich hatte dasselbe problem hier, und ich wollte wissen ob es OK ist, zu steigen, ein Ereignis genau, wo Sie einen Kommentar eingefügt Zeile für die Aktualisierung der Form. abonnieren Sie das Ereignis von Form und aktualisieren, was es ist? oder ist es in einem separaten thread und wird dazu führen, einige problem? Danke.

InformationsquelleAutor Arnaud F. | 2010-12-09

Schreibe einen Kommentar