Como desenvolver um chat básico tendo um cliente em WinForms e um servidor console do zero
Neste tutorial, você aprenderá a criar um chat em C# usando o .NET para comunicação entre um cliente desenvolvido com Windows Forms e um servidor de console, utilizando Sockets TCP. Se você está familiarizado com o desenvolvimento de sistemas e deseja explorar a comunicação em tempo real, entender o uso de sockets será uma adição valiosa à sua caixa de ferramentas de programação. Durante iremos revisar conceitos básicos de sockets, explicar diferenças entre TCP e HTTP, e orientar cada etapa desde a criação do servidor até o teste entre múltiplos clientes.
Você verá como configurar tanto o servidor quanto o cliente - aplicando conceitos de concorrência para gerenciar múltiplas conexões, enviando e recebendo mensagens quase em tempo real. O tutorial passa por configurações de ambiente como o Visual Studio 2022 e detalhes como o uso de listas e fluxos de leitura e escrita em C#.
---
#### Índice de Capítulos
00:00:00 Introdução à comunicação via Socket usando .net Console (Server) e Winforms (Client)
00:02:03 Diferença entre comunicação via Socket e HTTP
00:02:44 Explicando criação do Sockets Server usando TCPListener
00:06:04 Criando a Task que irá utilizar os fluxos de leitura e escrita (Streams) de cada Client
00:07:51 Respondendo a todos os Clients conectados com StreamWriter
00:09:14 Criando um Client Socket usando WinForms no Visual Studio 2022
00:11:21 Ajustando Componentes de interface (UI) no Winforms
00:13:52 Conectando ao server TcpClient e definindo os fluxos (StreamReader e StreamWriter)
00:17:41 Tratando o recebimento mensagens dos Clients usando StreamReader
00:18:10 Usando Invoke para preencher uma ListBox na MainThread a partir de uma Task
00:19:40 Codificando evento Click botão para enviar mensagens ao Socket Server (StreamWriter)
00:21:12 Testando Sockets entre os Clientes Winforms e Blazor e o Server .net Console
Comunicação por TCP Sockets em C#: Blazor, Console e WinForms integrados em um Tutorial Completo!
Este vídeo une e organiza três conteúdos completos sobre comunicação via TCP Sockets em C# e .NET, mostrando desde os conceitos iniciais até a implementação prática com Console Server, Blazor Client e WinForms Client.
Você aprenderá passo a passo como:
- Conceituar a comunicação por Sockets e entender diferenças para HTTP
- Criar um Server TCP em .NET Console com TcpListener
- Criar Clients TCP em Blazor Server e WinForms
- Trabalhar com StreamReader e StreamWriter para envio/recebimento de mensagens
- Gerenciar múltiplas conexões simultâneas (broadcast para todos os sockets)
- Usar Task, Invoke, InvokeAsync e StateHasChanged para atualizar a UI
- Tratar erros e desconexões de clientes
- Integrar tudo em uma aplicação prática de comunicação cliente/servidor
# Índice de Capítulos
- 00:00:00 Conceitualizando a Comunicação por Sockets
- 00:05:07 Criando a aplicação TCP Server .Net Console (dotnet new)
- 00:10:31 Criando o Listener de TCP com o TcpListener
- 00:13:15 Criando o loop para aguardar conexões TCP (AcceptTcoClient)
- 00:13:48 Criando a tarefa (Task) que receberá e responderá as mensagens TCP
- 00:15:16 Definindo os fluxos, geral (Stream), de envio (StreamWriter) e recebimento (StreamReader)
- 00:15:41 Explicando a diferença entre conexão por Socket e comum HTTP
- 00:19:57 Recebendo a mensagem TCP enviada pelo Client (Stream.ReadLine)
- 00:21:53 Respondendo a mensagem TCP enviada pelo Client (Stream.WriteLine)
- 00:27:29 Compilando a aplicação TCP Server .Net Console (dotnet build)
- 00:27:58 Criando e executando a aplicação TCP Client em Blazor (Server) com .Net (dotnet new blazor)
- 00:30:30 Criando a Interface (UI) em Blazor para o TCP Client (HTML, CSS e Bootstrap)
- 00:35:00 Definindo os fluxos, geral (NetworkStream), envio (StreamWriter) e recebimento (StreamReader)
- 00:39:19 Definindo os Bindings fazendo a ligação entre Interface (UI) e Código
- 00:41:54 Inicializando o TCP Client (TcpClient)
- 00:44:03 Criando a tarefa (Task) que define os fluxos (stream) de recebimento e resposta de mensagens TCP
- 00:46:47 Atualizando, de uma Task externa, a Interface (UI) em Blazor (InvokeAsync, StateHasChange)
- 00:47:36 Definindo método para envio de mensagens TCP (Stream.WriteLine)
- 00:51:32 Definindo e detalhando o RenderMode InteractiveServer
- 00:55:16 Tratando erros em uma aplicação .Net Blazor
- 00:59:26 Compilando, executando e testando 2 aplicações .Net Blazor e Console (Client e TCP Server)
- 01:02:25 Criando uma class auxiliar e um Dictionary de Streams de TcpClient
- 01:07:46 Pegando o EndPoint do Client Socket conectado e incluindo no Dictionary
- 01:11:24 Loop para responder a todos os Clients Socket TCP conectados (Broadcast)
- 01:12:09 Verificando se o Client Socket TCP está conectado
- 01:12:58 Desconectando Streams Client Socket TCP e o removendo do Dictionary
- 01:14:51 Respondendo a um Client Socket TCP no seu StreamWriter
- 01:16:42 Trocando um Dictionary por um ConcurrentDictionary de Clients Socket TCP
- 01:19:08 Explicação completa de um Server Socket TCP em .net Console (TcpListener)
- 01:28:26 Explicação completa de um Client Socket TCP em .net Blazor (TcpClient)
- 01:31:35 Compilando e executando 2 aplicação Client e Server TCP em .net (Blazor e Console)
- 01:43:56 Criando um Client Socket usando WinForms no Visual Studio 2022
- 01:46:03 Ajustando Componentes de interface (UI) no Winforms
- 01:48:34 Conectando ao server TcpClient e definindo os fluxos (StreamReader e StreamWriter)
- 01:52:23 Tratando o recebimento mensagens dos Clients usando StreamReader
- 01:52:52 Usando Invoke para preencher uma ListBox na MainThread a partir de uma Task
- 01:54:22 Codificando evento Click botão para enviar mensagens ao Socket Server (StreamWriter)
- 01:55:54 Testando Sockets entre os Clientes Winforms e Blazor e o Server .net Console
Nessa coleção de vídeo aulas você irá aprender a criar um espécie de checador de qualidade de internet, sendo isso apenas um pretexto para que você passe a conhecer, mesmo que de maneira sucinta, conceitos de Delegate, CancellationToken, métodos assíncronos e anônimos usando WinForms .net core.
Nessa coleção de vídeo aulas você irá aprender a criar um espécie de checador de qualidade de internet, sendo isso apenas um pretexto para que você passe a conhecer, mesmo que de maneira sucinta, conceitos de Delegate, CancellationToken, métodos assíncronos e anônimos usando WinForms .net core.
Nessa coleção de vídeo aulas você irá aprender a criar um espécie de checador de qualidade de internet, sendo isso apenas um pretexto para que você passe a conhecer, mesmo que de maneira sucinta, conceitos de Delegate, CancellationToken, métodos assíncronos e anônimos usando WinForms .net core.
Nessa coleção de vídeo aulas você irá aprender a criar um espécie de checador de qualidade de internet, sendo isso apenas um pretexto para que você passe a conhecer, mesmo que de maneira sucinta, conceitos de Delegate, CancellationToken, métodos assíncronos e anônimos usando WinForms .net core.
Nessa coleção de vídeo aulas você irá aprender a criar um espécie de checador de qualidade de internet, sendo isso apenas um pretexto para que você passe a conhecer, mesmo que de maneira sucinta, conceitos de Delegate, CancellationToken, métodos assíncronos e anônimos usando WinForms .net core.