SlideShare una empresa de Scribd logo
2
Lo más leído
3
Lo más leído
4
Lo más leído
Mtro José Antonio Sandoval Acosta.
Docente de Ingeniería en Sistemas Computacionales.
México. 18 de marzo de 2017.
Aplicación Cliente Servidor en 3 capas:
- Se tiene una aplicación cliente en consola (capa de presentación), esta sirve para
realizar la captura de la cadena que se pretende ejecutar en el SQL Server.
- La aplicación servidor es la capa de negocio o procesamiento, recibe la cadena
producida por el cliente y la ejecuta en el SQL Server por medio de los controles o
comandos apropiados, solo puede realizar Insert, Delet y Update ya que utiliza un
ExecuteNonQuery().
- El SQL Server o capa de datos en este caso sirve como repositorio de información y
por medio de queriers se puede corroborar que lo enviado desde el cliente se
ejecutó correctamente.
- Tanto el cliente como el servidor corren su proceso dentro de un ciclo, de esta forma
cuando se realiza una acción al finalizar la misma ambas aplicaciones vuelven a
estado de espera, y permanecerán así hasta que se realice otra acción o se cierren
las aplicaciones.
Mtro José Antonio Sandoval Acosta.
Docente de Ingeniería en Sistemas Computacionales.
México. 18 de marzo de 2017.
// Programa Servidor
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.Data.SqlClient;
namespace SvrP
{
class Servidor
{
static void Main(string[] args)
{
Console.WriteLine("*** Server Application ***");
// Se ejecuta el Listener en un ciclo para que se repita
// de forma indefinida y acepte tantas conexiones sean posibles
while (true)
{
try
{
IPAddress ipAd = IPAddress.Any;
// EN este caso utilizamos la dirección
// local e igual en el cliente
// Inicializar Listener
TcpListener myList = new TcpListener(ipAd,8001);
myList.Start();
Console.WriteLine(
"Servidor corriendo en Puerto 8001...");
Console.WriteLine("Local End Point:" +
myList.LocalEndpoint);
Console.WriteLine("Esperando conexión...");
Socket s = myList.AcceptSocket();
Console.WriteLine("Conexión recivida desde: " +
s.RemoteEndPoint);
// Guardar en una variable la información
// recibida del cliente
byte[] b = new byte[100];
int k = s.Receive(b);
Console.WriteLine("Recievido...");
// Convierte e iprime el contenido de la cadena
string cadena = "";
for (int i = 0; i < k; i++)
{
cadena = cadena + Convert.ToChar(b[i]);
}
Console.WriteLine(cadena);
// Conectarse con el SQL Server
string conectSQL = @"Server=.sqlexp;database=Northwnd;"
+ " Integrated Security=TRUE";
SqlConnection cm = new SqlConnection();
cm.ConnectionString = conectSQL;
cm.Open();
Mtro José Antonio Sandoval Acosta.
Docente de Ingeniería en Sistemas Computacionales.
México. 18 de marzo de 2017.
// Ejecutar la cadena como comando del SQL
// solo aplica para Insert, Delet y
// UPdate ya que se usa ExecuteNonQuery
SqlCommand cmd = new SqlCommand(cadena, cm);
cmd.ExecuteNonQuery();
cm.Close();
// Enviar señal exitosa al Cliente
// Esta señal puede variar dependiendo
//del proceso ejecutado
ASCIIEncoding asen = new ASCIIEncoding();
s.Send(asen.GetBytes(
"Cadena recibida. Comando ejecutado"));
Console.WriteLine("nAcuse enviado");
s.Close();
myList.Stop();
}
catch (Exception e)
{
Console.WriteLine("nError... " + e.StackTrace);
}
}
}
}
}
Mtro José Antonio Sandoval Acosta.
Docente de Ingeniería en Sistemas Computacionales.
México. 18 de marzo de 2017.
// Programa Cliente
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace CteP
{
class Cliente
{
static void Main(string[] args)
{
Console.WriteLine("Client Application");
while (true)
{
try
{
TcpClient tcpclnt = new TcpClient();
Console.WriteLine("Conectando.....");
// utilizar para este caso IP local ya que
// cliente y servidor corren en la misma PC
tcpclnt.Connect("127.0.0.1", 8001);
Console.WriteLine("*** Conectado con el servidor ***");
Console.Write("Introduzca frase a transmitir: ");
String str = Console.ReadLine();
Stream stm = tcpclnt.GetStream();
// convertir cadena a ascii para transmitirla
ASCIIEncoding asen = new ASCIIEncoding();
byte[] ba = asen.GetBytes(str);
Console.WriteLine("Transmitiendo cadena...");
stm.Write(ba, 0, ba.Length);
// recibir acuse, se debe converir a string
byte[] bb = new byte[100];
int k = stm.Read(bb, 0, 100);
string acuse = "";
for (int i = 0; i < k; i++)
acuse = acuse + Convert.ToChar(bb[i]);
Console.WriteLine(acuse);
tcpclnt.Close();
}
catch (Exception e)
{
Console.WriteLine("Error... " + e.StackTrace);
}
}
}
}
}
Mtro José Antonio Sandoval Acosta.
Docente de Ingeniería en Sistemas Computacionales.
México. 18 de marzo de 2017.
Estado inicial del Cliente, el Servidor y el SQL Server con la tabla Region.
Mtro José Antonio Sandoval Acosta.
Docente de Ingeniería en Sistemas Computacionales.
México. 18 de marzo de 2017.
Estado final del Cliente, el Servidor y la instancia de SQL Server, tabla Region.

Más contenido relacionado

PPTX
IP Privadas y Publicas
PPTX
Introduccion a Nodejs
PPTX
Componentes y Librerías - Tópicos avanzados de programación.
PDF
Tutorial packet-tracer
PPTX
Java database connectivity with MySql
PPTX
ARREGLOS.pptx
PDF
Java Programming
IP Privadas y Publicas
Introduccion a Nodejs
Componentes y Librerías - Tópicos avanzados de programación.
Tutorial packet-tracer
Java database connectivity with MySql
ARREGLOS.pptx
Java Programming

La actualidad más candente (20)

PPTX
Grafico Modelo Osi
PDF
Gramaticas
PPTX
Estándares, modelos y normas internacionales de redes
PPTX
Presentación ip
PDF
Analisis sintactico
PPTX
Unidad 3 topicos avanzados de programacion
PDF
Manual sqlserver2008 final
PDF
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
PPTX
Implementacion de bases de datos en mysql
PDF
Rangos de IPs Públicas y Privadas
PPTX
Diapositivas de dispositivos de red
DOCX
Creación de red inalámbrica con cisco packet tracer
PDF
Hibernate Presentation
PDF
Creación de tablas y relaciones en mysql workbench
PPT
Java Servlets
DOCX
Servidores: cuadro comparativo
PPT
Generics in java
PDF
Guia BD conexión Mysql con Java usando Netbeans
PPT
Diagramas de actividad
Grafico Modelo Osi
Gramaticas
Estándares, modelos y normas internacionales de redes
Presentación ip
Analisis sintactico
Unidad 3 topicos avanzados de programacion
Manual sqlserver2008 final
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Implementacion de bases de datos en mysql
Rangos de IPs Públicas y Privadas
Diapositivas de dispositivos de red
Creación de red inalámbrica con cisco packet tracer
Hibernate Presentation
Creación de tablas y relaciones en mysql workbench
Java Servlets
Servidores: cuadro comparativo
Generics in java
Guia BD conexión Mysql con Java usando Netbeans
Diagramas de actividad
Publicidad

Destacado (20)

PPTX
Elaboracion de mapas conceptuales
PPTX
TSEM Spring 2017 mcarthur class 3
PPTX
3Com 3C10224-ME
PDF
Estructura de la dentina. visita el blog, zona de estudio odontologico
PPTX
PDF
Portfolio - Akira Kamakura Gimeno
PPT
Central place theory
PPTX
Procesos fundiciones atilio 3ercorte
PPTX
El grupo nominal en inglés.
PPTX
Estrategias de búsqueda
PPTX
Ecuaciones con valor absoluto
PDF
Н.А. Иванов - Энергетическая стратегия США и проблемы разработки нетрадиционн...
PPTX
¿Que Salisteis a Ver?
PPTX
Lmcp 1532 pembangunan bandar mapan task 3
PDF
Catálogo pacari 2017
PDF
El Partenón de Atenas. Historia y decoración.
PPTX
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
PDF
Aplicación Cliente - Servidor / GUI - Consola
PPTX
3Com 10002629
PDF
Criterios de Evaluación Lengua
Elaboracion de mapas conceptuales
TSEM Spring 2017 mcarthur class 3
3Com 3C10224-ME
Estructura de la dentina. visita el blog, zona de estudio odontologico
Portfolio - Akira Kamakura Gimeno
Central place theory
Procesos fundiciones atilio 3ercorte
El grupo nominal en inglés.
Estrategias de búsqueda
Ecuaciones con valor absoluto
Н.А. Иванов - Энергетическая стратегия США и проблемы разработки нетрадиционн...
¿Que Salisteis a Ver?
Lmcp 1532 pembangunan bandar mapan task 3
Catálogo pacari 2017
El Partenón de Atenas. Historia y decoración.
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Aplicación Cliente - Servidor / GUI - Consola
3Com 10002629
Criterios de Evaluación Lengua
Publicidad

Similar a Ejemplo de aplicación cliente-servidor en C# (20)

DOCX
Sockets en c
PDF
Programacionclienteservidor
PDF
Desarrollo aplicaciones distribuidas sockets
DOCX
El servidor
DOCX
Practica cliente servidor java
PDF
Ejemplos programacion socket java
DOC
Sockets en delphi
PDF
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
PPTX
Tema iv comunicación entre procesos
PDF
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
PDF
Lw2010 Pedro Valera
DOCX
Proyecto final teleprocesamiento
PPT
Arquitectura de servidores - Una presentacion resumida
PPT
Sockets y Threads en Java
DOC
Pantallas de programa armando maquinas
DOC
Pantallas de programa armando maquinas
PDF
J sockets
PDF
C documents and settings_pc10_configuración local_datos de programa_mozilla_...
Sockets en c
Programacionclienteservidor
Desarrollo aplicaciones distribuidas sockets
El servidor
Practica cliente servidor java
Ejemplos programacion socket java
Sockets en delphi
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
Tema iv comunicación entre procesos
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 Pedro Valera
Proyecto final teleprocesamiento
Arquitectura de servidores - Una presentacion resumida
Sockets y Threads en Java
Pantallas de programa armando maquinas
Pantallas de programa armando maquinas
J sockets
C documents and settings_pc10_configuración local_datos de programa_mozilla_...

Más de José Antonio Sandoval Acosta (20)

PPTX
Diapositivas Mejora SIG del Instituto Tecnológico Superior de Guasav
PPTX
Gestión de la Calidad Total (UNIDAD 2) UAIM
PPTX
Taller de ética U1 El sentido de aprender sobre etica.pptx
PPTX
Comunidad Tepeca - Proyecto Final UAIM-Los Mochis
PPTX
Linea del tiempo de la inteligencia artificial.pptx
PPTX
Ing. Mecatronica Prog. Básica, U5 Módulos
PPTX
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
PPTX
Ing. Mecatrónica, Prog. Básica U3 control de flujo
PPTX
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
PPTX
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
PDF
Manual de prácticas y antología para POO
PPTX
Aplicaciones móviles intro.
PPTX
Plantilla presentación.pptx
PPTX
PPTX
Diagrama de Casos de Uso UML
PPTX
Introducción al Diagrama de Clases UML
PPTX
Diagrama de clases UML
PPTX
Diagrama UML Casos de Uso
PDF
Tema 3 - Comandos básicos.pdf
PDF
Tema 1 - Intro.pdf
Diapositivas Mejora SIG del Instituto Tecnológico Superior de Guasav
Gestión de la Calidad Total (UNIDAD 2) UAIM
Taller de ética U1 El sentido de aprender sobre etica.pptx
Comunidad Tepeca - Proyecto Final UAIM-Los Mochis
Linea del tiempo de la inteligencia artificial.pptx
Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Manual de prácticas y antología para POO
Aplicaciones móviles intro.
Plantilla presentación.pptx
Diagrama de Casos de Uso UML
Introducción al Diagrama de Clases UML
Diagrama de clases UML
Diagrama UML Casos de Uso
Tema 3 - Comandos básicos.pdf
Tema 1 - Intro.pdf

Último (20)

PDF
Matriz_Seguimiento_Estu_Consult_2024_ACT.pdf
PPTX
Presentacion ppt rx en soldadura tp 231 vladimir Osuna 7114958 20241.pptx
PPTX
PRESENTACION DIAPOSITIVA PARA UN PROYECTO .pptx
PPTX
diego universidad convergencia e información
PDF
Diseño y Utiliación del HVAC Aire Acondicionado
PPTX
Logging While Drilling Ingenieria Petrolera.pptx
PDF
LIBRO UNIVERSITARIO SOFTWARE PARA INGENIERIA BN.pdf
PDF
LIBRO UNIVERSITARIO SISTEMAS PRODUCTIVOS BN.pdf
PPTX
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
PDF
FUNCION CUADRATICA FUNCIONES RAIZ CUADRADA
PPTX
Electronica II, material basico de electronica II
PPTX
DEBL Presentación PG 23.pptx [Autoguardado].pptx
PPTX
Cómo Elaborar e Implementar el IPERC_ 2023.pptx
PPTX
ARQUITECTURA INTEGRAL EN OBRA, PRINCIPIOS BASICOS Y TERMINOS
PPTX
LEVANTAMIENTOS TOPOGRAFICOS - DIAPOSITIVAS
PPTX
TOPOGRAFÍA - INGENIERÍA CIVIL - PRESENTACIÓN
PPTX
CNE-Tx-ZyD_Comite_2020-12-02-Consolidado-Version-Final.pptx
PPTX
Software para la educación instituciones superiores
PDF
Repaso sobre el Gusano_cogollero y como ataca .pdf
PDF
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
Matriz_Seguimiento_Estu_Consult_2024_ACT.pdf
Presentacion ppt rx en soldadura tp 231 vladimir Osuna 7114958 20241.pptx
PRESENTACION DIAPOSITIVA PARA UN PROYECTO .pptx
diego universidad convergencia e información
Diseño y Utiliación del HVAC Aire Acondicionado
Logging While Drilling Ingenieria Petrolera.pptx
LIBRO UNIVERSITARIO SOFTWARE PARA INGENIERIA BN.pdf
LIBRO UNIVERSITARIO SISTEMAS PRODUCTIVOS BN.pdf
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
FUNCION CUADRATICA FUNCIONES RAIZ CUADRADA
Electronica II, material basico de electronica II
DEBL Presentación PG 23.pptx [Autoguardado].pptx
Cómo Elaborar e Implementar el IPERC_ 2023.pptx
ARQUITECTURA INTEGRAL EN OBRA, PRINCIPIOS BASICOS Y TERMINOS
LEVANTAMIENTOS TOPOGRAFICOS - DIAPOSITIVAS
TOPOGRAFÍA - INGENIERÍA CIVIL - PRESENTACIÓN
CNE-Tx-ZyD_Comite_2020-12-02-Consolidado-Version-Final.pptx
Software para la educación instituciones superiores
Repaso sobre el Gusano_cogollero y como ataca .pdf
Informe Comision Investigadora Final distribución electrica años 2024 y 2025

Ejemplo de aplicación cliente-servidor en C#

  • 1. Mtro José Antonio Sandoval Acosta. Docente de Ingeniería en Sistemas Computacionales. México. 18 de marzo de 2017. Aplicación Cliente Servidor en 3 capas: - Se tiene una aplicación cliente en consola (capa de presentación), esta sirve para realizar la captura de la cadena que se pretende ejecutar en el SQL Server. - La aplicación servidor es la capa de negocio o procesamiento, recibe la cadena producida por el cliente y la ejecuta en el SQL Server por medio de los controles o comandos apropiados, solo puede realizar Insert, Delet y Update ya que utiliza un ExecuteNonQuery(). - El SQL Server o capa de datos en este caso sirve como repositorio de información y por medio de queriers se puede corroborar que lo enviado desde el cliente se ejecutó correctamente. - Tanto el cliente como el servidor corren su proceso dentro de un ciclo, de esta forma cuando se realiza una acción al finalizar la misma ambas aplicaciones vuelven a estado de espera, y permanecerán así hasta que se realice otra acción o se cierren las aplicaciones.
  • 2. Mtro José Antonio Sandoval Acosta. Docente de Ingeniería en Sistemas Computacionales. México. 18 de marzo de 2017. // Programa Servidor using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Net; using System.Net.Sockets; using System.Data.SqlClient; namespace SvrP { class Servidor { static void Main(string[] args) { Console.WriteLine("*** Server Application ***"); // Se ejecuta el Listener en un ciclo para que se repita // de forma indefinida y acepte tantas conexiones sean posibles while (true) { try { IPAddress ipAd = IPAddress.Any; // EN este caso utilizamos la dirección // local e igual en el cliente // Inicializar Listener TcpListener myList = new TcpListener(ipAd,8001); myList.Start(); Console.WriteLine( "Servidor corriendo en Puerto 8001..."); Console.WriteLine("Local End Point:" + myList.LocalEndpoint); Console.WriteLine("Esperando conexión..."); Socket s = myList.AcceptSocket(); Console.WriteLine("Conexión recivida desde: " + s.RemoteEndPoint); // Guardar en una variable la información // recibida del cliente byte[] b = new byte[100]; int k = s.Receive(b); Console.WriteLine("Recievido..."); // Convierte e iprime el contenido de la cadena string cadena = ""; for (int i = 0; i < k; i++) { cadena = cadena + Convert.ToChar(b[i]); } Console.WriteLine(cadena); // Conectarse con el SQL Server string conectSQL = @"Server=.sqlexp;database=Northwnd;" + " Integrated Security=TRUE"; SqlConnection cm = new SqlConnection(); cm.ConnectionString = conectSQL; cm.Open();
  • 3. Mtro José Antonio Sandoval Acosta. Docente de Ingeniería en Sistemas Computacionales. México. 18 de marzo de 2017. // Ejecutar la cadena como comando del SQL // solo aplica para Insert, Delet y // UPdate ya que se usa ExecuteNonQuery SqlCommand cmd = new SqlCommand(cadena, cm); cmd.ExecuteNonQuery(); cm.Close(); // Enviar señal exitosa al Cliente // Esta señal puede variar dependiendo //del proceso ejecutado ASCIIEncoding asen = new ASCIIEncoding(); s.Send(asen.GetBytes( "Cadena recibida. Comando ejecutado")); Console.WriteLine("nAcuse enviado"); s.Close(); myList.Stop(); } catch (Exception e) { Console.WriteLine("nError... " + e.StackTrace); } } } } }
  • 4. Mtro José Antonio Sandoval Acosta. Docente de Ingeniería en Sistemas Computacionales. México. 18 de marzo de 2017. // Programa Cliente using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Net; using System.Net.Sockets; using System.IO; namespace CteP { class Cliente { static void Main(string[] args) { Console.WriteLine("Client Application"); while (true) { try { TcpClient tcpclnt = new TcpClient(); Console.WriteLine("Conectando....."); // utilizar para este caso IP local ya que // cliente y servidor corren en la misma PC tcpclnt.Connect("127.0.0.1", 8001); Console.WriteLine("*** Conectado con el servidor ***"); Console.Write("Introduzca frase a transmitir: "); String str = Console.ReadLine(); Stream stm = tcpclnt.GetStream(); // convertir cadena a ascii para transmitirla ASCIIEncoding asen = new ASCIIEncoding(); byte[] ba = asen.GetBytes(str); Console.WriteLine("Transmitiendo cadena..."); stm.Write(ba, 0, ba.Length); // recibir acuse, se debe converir a string byte[] bb = new byte[100]; int k = stm.Read(bb, 0, 100); string acuse = ""; for (int i = 0; i < k; i++) acuse = acuse + Convert.ToChar(bb[i]); Console.WriteLine(acuse); tcpclnt.Close(); } catch (Exception e) { Console.WriteLine("Error... " + e.StackTrace); } } } } }
  • 5. Mtro José Antonio Sandoval Acosta. Docente de Ingeniería en Sistemas Computacionales. México. 18 de marzo de 2017. Estado inicial del Cliente, el Servidor y el SQL Server con la tabla Region.
  • 6. Mtro José Antonio Sandoval Acosta. Docente de Ingeniería en Sistemas Computacionales. México. 18 de marzo de 2017. Estado final del Cliente, el Servidor y la instancia de SQL Server, tabla Region.