private void Disconnect() { try { if (this.conectado == true) { try { Protocolo msgToSend = new Protocolo(); msgToSend.strMensagem = null; msgToSend.strElemento = null; msgToSend.cmdAcao = Acao.Desconectar; byte[] b = msgToSend.ToByte(); this.clientSocket.Send(b, 0, b.Length, SocketFlags.None); this.clientSocket.Disconnect(false); this.clientSocket.Close(); } catch (ObjectDisposedException) { } catch (Exception ex) { MessageBox.Show(ex.Message, "ClienteB FormClosing", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "ClienteB Disconnect", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { this.conectado = false; } }
private void OnReceive(IAsyncResult ar) { try { this.clientSocket.EndReceive(ar); Protocolo msgReceived = new Protocolo(byteData); string acao = msgReceived.cmdAcao.ToString(); if (acao == "Desconectar") { MessageBox.Show("O servidor desconectou...", "ClienteB"); if (this.conectado == false) { this.btnDesconectar.Visible = false; this.btnConectar.Visible = true; this.btnOK1.Enabled = false; this.btnOK2.Enabled = false; } } else { DateTime agora = DateTime.Now; this.txtLog.Text += agora.ToString("dd/MM/yyyy HH:mm:ss") + " - " + msgReceived.strMensagem + "\r\n"; this.txtLog.SelectionStart = this.txtLog.Text.Length; this.txtLog.ScrollToCaret(); this.clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnReceive), null); } } catch (ObjectDisposedException) { } catch (Exception ex) { MessageBox.Show(ex.Message, "ClienteB OnReceive", MessageBoxButtons.OK, MessageBoxIcon.Error); } }