public void Run() { try { IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse(IP), PORT); tcpListener = new TcpListener(ipEndPoint); tcpListener.Start(); while (true) { Atendimento atendimento = new Atendimento(); atendimento.socket = tcpListener.AcceptSocket(); atendimento.stream = new NetworkStream(atendimento.socket); atendimento.writer = new BinaryWriter(atendimento.stream); atendimento.reader = new BinaryReader(atendimento.stream); atendimento.Consulta = ClinicaXmlUtils.FromXml <Consulta>(atendimento.reader.ReadString()); if (list.Any(n => n.Consulta.ID_Consulta == atendimento.Consulta.ID_Consulta)) { atendimento.writer.Write("Consulta já, existente."); } else { list.Add(atendimento); Invoke(new MethodInvoker(delegate() { ListViewItem linha = listView1.Items.Add(atendimento.Consulta.ID_Consulta.ToString()); linha.SubItems.Add(atendimento.Consulta.Medico.Nome); linha.SubItems.Add(atendimento.Consulta.Paciente.Nome); })); } atendimento.writer.Write("FIM"); } } catch (SocketException) { } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { CloseConnection(); } }