Está en la página 1de 4

Creando un servidor remoto mediante Visual

Basic .NET
En este artculo se muestra cmo crear un servidor remoto sencillo al que puede tener acceso
otra aplicacin. La aplicacin que tiene acceso a este servidor puede estar en el mismo equipo,
en otro equipo o en otra red. El servidor remoto se divide en dos partes: el objeto de servidor y la
aplicacin de servidor. El objeto de servidor es el objeto con el que se comunica el cliente y la
aplicacin de servidor se utiliza para registrar el objeto de servidor con el motor de tiempo de
ejecucin Remoting.

Requisitos
En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service
Pack recomendados que se necesitarn:
Visual Studio .NET
En el presente artculo se da por supuesto que est familiarizado con los temas siguientes:
Visual Studio .NET
Visual Basic .NET
Redes

Crear un objeto de servidor remoto


El primer paso para crear la aplicacin de servidor consiste en crear el objeto de servidor. El
objeto de servidor es la instancia que crea la aplicacin cliente y con el que se comunica en el
equipo servidor. La aplicacin cliente lleva esto a cabo a travs de un objeto proxy que se crea
en el cliente. En este ejemplo, el objeto de servidor reside en una Biblioteca de clases (DLL) y se
llama myRemoteClass.
1. Cree una nueva aplicacin de biblioteca de clases en Visual Basic .NET. Se crear Class1
de forma predeterminada.
2. En el Explorador de soluciones, cambie el nombre del archivo de cdigo Class1.vb a
ServerClass.vb.
3. Abra ServerClass.vb y cambie el nombre Class1 a myRemoteClass. myRemoteClass
debe heredarse de la clase MarshalByRefObject. Esta clase debe aparecer del
siguiente modo:

Public Class myRemoteClass


Inherits MarshalByRefObject

End Class
4. Agregue un mtodo pblico a myRemoteClass, que toma una cadena, muestra un
mensaje en la consola con un valor de la cadena y devuelve True si la cadena no est
vaca.
Public Class myRemoteClass
Inherits MarshalByRefObject
Public Function SetString(sTemp As String) As Boolean
Try
Console.WriteLine("Esta cadena '{0}' tiene una longitud de {1}", sTemp, Len(sTemp))
Return (sTemp <> "")
Catch
Return (False)
End Try
End Function
End Class
5. Genere el proyecto para crear el ensamblado ServerClass.dll.
6. Guarde y cierre el proyecto.

Crear una aplicacin de servidor remoto


Despus de crear el objeto de servidor con el que se comunicar el cliente, debe registrar este
objeto con el marco de trabajo Remoting. Al registrar el objeto, tambin debe iniciar el servidor y
hacer que el servidor escuche en un puerto a los clientes que intentan conectarse a ese puerto.
Para ello, necesita un tipo de proyecto que cree un archivo ejecutable. El objeto de servidor se
incluye en un proyecto independiente, de manera que pueda crear fcilmente una referencia al
objeto de servidor desde el proyecto del cliente. Si incluye el objeto de servidor en este proyecto,
no puede hacer referencia a l, ya que las referencias slo se pueden establecer en archivos
DLL.

Para simplificar, cree una nueva aplicacin de consola en Visual Basic .NET para iniciar el
servidor remoto. Se crear Module1 de forma predeterminada.
En el Explorador de soluciones, cambie el nombre del archivo Module1.vb a
ServerObject.vb.
Agregue una referencia al espacio de nombres System.Runtime.Remoting.
Agregue una referencia al ensamblado ServerClass.dll que cre en la seccin anterior.
Utilice la instruccin Imports de los espacios de nombres Remoting, Remoting.Channels y
Remoting.Channels.Tcp de forma que no tenga que suministrar declaraciones de dichos
espacios de nombres ms adelante en el cdigo. Debe utilizar la instruccin Imports antes
que cualquier otra declaracin.
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Tcp
Declare la variable apropiada. Para ello, declare e inicialice un objeto TcpChannel que
escuche si los clientes se conectan a un puerto determinado, que en este ejemplo es el
puerto 8085. Utilice el mtodo RegisterChannel para registrar el canal con los servicios de
canal. Agregue el siguiente cdigo de declaracin al procedimiento Main del mdulo
predeterminado:
Dim chan As TcpChannel = New TcpChannel(8085)
ChannelServices.RegisterChannel(chan)
Llame al mtodo RegisterWellKnownType del objeto RemotingConfiguration para
registrar el objeto ServerClass con el marco de trabajo Remoting y especifique los
parmetros siguientes en el cdigo:
a. El nombre de tipo completo del objeto que se va a registrar (que es
ServerClass.myRemoteClass en este ejemplo), seguido del nombre de
ensamblado ServerClass. Especifique tanto el nombre del espacio de nombres
como el nombre de la clase. Como no especific un espacio de nombres en la
seccin anterior, se utilizar el espacio de nombres raz predeterminado.
b. Asigne al extremo donde se va a publicar el objeto el nombre RemoteTest . Los
clientes necesitan conocer este nombre para conectarse al objeto.
c. Utilice el modo de objeto SingleCall para especificar el parmetro final. El modo
de objeto especifica la duracin del objeto cuando se activa en el servidor. En el
caso de los objetos SingleCall, se crea una nueva instancia de la clase para
cada llamada realizada por un cliente, aunque el mismo cliente llame al mismo

mtodo ms de una vez. Por el contrario, los objetos Singleton se crean slo
una vez y todos los clientes se comunican con el mismo objeto.
RemotingConfiguration.RegisterWellKnownServiceType( _
Type.GetType("ServerClass.myRemoteClass, ServerClass"), _
"RemoteTest", _
WellKnownObjectMode.SingleCall)
Utilice el mtodo ReadLine del objeto Console para que la aplicacin de servidor siga en
ejecucin.
Console.WriteLine("Presione <ENTRAR> para salir...")
Console.ReadLine()
Genere el proyecto.
Guarde y cierre el proyecto.

Publicado Originalmente en ingles


http://support.microsoft.com/default.aspx?scid=kb;En;300951

También podría gustarte