El dia de hoy tengo una consulta respecto a C#, lo que deseo hacer es lo siguiente: (intentare ser lo mas claro posible)
Tengo un servidor al cual le colocare una aplicacion de Windows hecha en c# la cual pues se conecta a una base de datos que se encuentra en el servidor y tiene muchas aplicaciones y muchos forms, etc, etc.
En otras palabras un programa completo que fue diseñado para ser utilizado como programa de escritorio.
Ahora este programa debe de estar corriendo en varias computadoras a la vez, por lo cual desearia implementar una arquitectura cliente servidor.
Mi pregunta en concreto es como puedo abrir esta aplicacion en las diferentes maquinas?
Estaba pensando en usar sockets de la siguiente manera:
Código:
Ahora, no se si es manera correcta ni como abrir la aplicacion...//Para poder usar sockets using System.Net; using System.Net.Sockets; //obtenemos la IP de la computadora local IPAddress direc = Dns.GetHostEntry("localhost").AddressList[0]; // //El puerto no importa IPEndPoint Ep = new IPEndPoint(direc, 12345); //Creamos el socket Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); /* AddressFamily.InterNetwork: Esto indica que la direccion es para una IP v4 (xxx.xxx.xxx.xxx) SocketType.Stream: Es el tipo de socket, hay varios tipos. ProtocolType.Tcp: Es el potocolo que se usara. */ //comenzamos a escuchar por el puerto 12345 try { socket.Bind(Ep); //lo anclamos al puerto 12345 } catch(SocketException) { //si aqui hay error es que ese puerto esta en uso } socket.Listen(10); //longitud máxima de la cola de conexiones pendientes while (no alcance las 10 conexiones) { connSocket.BeginAccept(new AsyncCallback(OnAccept),connSocket); //********************** abrimos el form. //********************** }
Esa manera se me habia ocurrido a mi, no se si habran otras mejores o si de esta manera es posible y me ayudan.
Saludos!!