Je suis vraiment novice en programmation C# et je développe une application basée sur un TcpClient.NetworkStream BeginRead/EndRead
Je voudrais savoir comment utiliser BeginRead & EndRead, j'ai déjà lu la documentation de MSN mais n'aide pas.
J'ai ceci:
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 }
Comment puis-je mettre à jour un composant en utilisant le formulaire résultat?
Merci pour votre aide.
Est-ce Winforms? – CodingGorilla
Oui, c'est WinForms. –
J'ai eu le même problème ici et je voulais savoir si c'est OK de monter un événement à l'endroit où vous avez inséré une ligne de commentaire pour mettre à jour le formulaire. abonnez-vous à l'événement de Formulaire et mettre à jour ce que c'est? ou est-ce dans un fil séparé et causera un problème? Merci. – Shamim