C# - Usando classes para a programação com a web (.NET Core) - VII
Hoje vamos apresentar algumas classes que facilitam a programação para web na linguagem C#. |
Continuando a sexta parte do artigo vamos criar um
cliente usando sockets.
No artigo anterior criamos um Servidor usando Sockets
e agora vamos criar a aplicação cliente que vai estabelecer a conexão com o
servidor e enviar mensagens.
Esta atuando no paradigma cliente/servidor que possui
a
seguinte seqüência de
ações :
Cliente | Servidor |
Cria um socket e atribui-lhe um endereço | cria um socket e atribui-lhe um endereço. Este endereço deve ser conhecido pelo cliente. |
Solicita a conexão do seu socket ao socket do servidor (conhece o endereço ) | Aguarda a conexão de um cliente |
Aguarda que a conexão seja estabelecida | Aceita a conexão e cria um novo socket para comunicar com o cliente em causa |
Envia uma mensagem ( request ) | Recebe a mensagem no novo socket |
Recebe a mensage de resposta (reply) | Envia mensagem de resposta (reply) |
Fecha a conexão com o servidor | fecha a conexão com o cliente |
Criando um cliente usando Sockets
Vamos criar um projeto .NET Core tipo Console no VS 2017 Community chamado ClienteTeste.
Na aplicação console abra o arquivo Program e inclua o código abaixo:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace ClienteTeste
{
class Program
{
static void Main(string[] args)
{
IniciaCliente();
return;
}
public static void IniciaCliente()
{
byte[] bytes = new byte[1024];
try
{
// Conecta com um servidor Remoto
// Pega o endereço IP do Host usado para conexão
IPHostEntry host = Dns.GetHostEntry("localhost");
IPAddress ipAddress = host.AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress, 11000);
// cria um socket TCP/IP
Socket sender = new Socket(ipAddress.AddressFamily,
SocketType.Stream, ProtocolType.Tcp);
// Conecta o socket com o endpoint remoto
try
{
// Faz a conexão com o endpoint remoto
sender.Connect(remoteEP);
Console.WriteLine("Socket conectado com {0} ",
sender.RemoteEndPoint.ToString());
// Codifica os dados no formato string para um array de bytes
byte[] msg = Encoding.ASCII.GetBytes("Teste de mensagem<EOF>");
// Envia os dados via socket
int bytesSent = sender.Send(msg);
// Recebe a resposta do dispositivo remoto
int bytesRec = sender.Receive(bytes);
Console.WriteLine("Teste ecoou... = {0}",
Encoding.ASCII.GetString(bytes, 0, bytesRec));
// Libera o socket.
sender.Shutdown(SocketShutdown.Both);
sender.Close();
} // trata as exceções
catch (ArgumentNullException ane)
{
Console.WriteLine("ArgumentNullException : {0}", ane.ToString());
}
catch (SocketException se)
{
Console.WriteLine("SocketException : {0}", se.ToString());
}
catch (Exception e)
{
Console.WriteLine("Unexpected exception : {0}", e.ToString());
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
}
|
Agora, temos dois projetos prontos : o Servidor e o Cliente.
Vamos testar executando o projeto
Servidor e a seguir
o projeto Cliente a partir da linha de comando.
Você verá que a mensagem enviada pelo cliente é lida e exibida pelo ouvinte.
Depois que o cliente for executado, você verá a mensagem enviada ao servidor
conforme mostra a figura abaixo:
Fique a vontade para melhorar os projetos.
Pegue o projeto completo aqui:
ClienteTeste.zip
"Amo ao SENHOR, porque ele ouviu a minha voz e a
minha súplica.
Porque inclinou a mim os seus ouvidos; portanto, o invocarei enquanto viver."
Salmos 116:1,2
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
NET Core ou .NET Framework - Macoratti
NET Core - Padrão Repositório - Macoratti
NET Core - Sua primeira aplicação Console Application - Macoratti
NET Core 3.0 e Visual Studio 2019 - Macoratti
NET- Usando Sockets - Macoratti
C# - Transferindo arquivos usando Sockets - Macoratti
C# - Compartilhando arquivos - Cliente/Servicor (socket) - Macoratti
C # - Criando um Chat - Parte 1 - O Cliente - Macoratti