Você está na página 1de 3

Como criar o acesso do cliente ao servidor

remoto usando o Visual Basic .NET


O namespace de biblioteca de classes do.NET Framework a seguir mencionado neste artigo:
Expandir tudo | Recolher tudo

Sumrio
Este procedimento passo a passo demonstra como criar um cliente que acessa um servidor remoto. Esse
cliente pode ser localizado no mesmo computador, em um computador diferente ou em uma rede
diferente. Este artigo baseia-se no seguinte artigo da Base de Conhecimento Microsoft:
300951 Como criar um servidor remoto usando o Visual Basic .NET

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs
que voc precisa:

Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced
Server ou Windows NT 4.0 Server
Microsoft Visual Studio .NET

Este artigo pressupe que voc esteja familiarizado com os seguintes tpicos:

Visual Studio .NET


Acesso rede

Voc tambm deve criar aplicativos que so descritos em 300951 antes de comear o procedimento
neste artigo.

Como criar um cliente a um servidor remoto

1. Crie um novo aplicativo de Console no Visual Basic .NET. Mdulo1 ser criado por
padro.
2. Renomeie o mdulo de Module1. vb para ClientApp.vb.
3. Adicione uma referncia ao namespace System.Runtime.Remoting ao projeto.
4. Adicione uma referncia ao assembly do ServerClass.dll criado em 300951.

Existem trs maneiras diferentes de um cliente fazer referncia a objetos remotos e cada
um deles resolvida em tempo de compilao. Este exemplo usa a primeira opo (a).

1. Compile o objeto do servidor e especifique o arquivo. .exe ou. dll como uma
referncia para o compilador quando voc compilar o cliente. Este mtodo til
quando os componentes de cliente e servidor so desenvolvidos no mesmo site.
2. Derive o objeto de servidor de uma classe de interface e compilar o cliente com a
interface. Este mtodo til quando os componentes cliente e servidor no so
desenvolvidos no mesmo site. As interfaces podem ser compilados em uma
biblioteca de vnculo dinmico (DLL) e enviados para os locais do cliente
conforme necessrio. Tanto quanto possvel, evite alterar uma interface publicada.
3. Use a ferramenta SoapSUDS para extrair os metadados necessrios de um objeto
de servidor em execuo. Este mtodo til quando os componentes cliente e
servidor so desenvolvidas em diferentes locais, e nenhuma classe de interface
est disponvel. Aponte a ferramenta SoapSUDS em um remoto URI Uniform
Resource Identifier () e gerar os metadados necessrios como origem ou uma
DLL. importante observar que a ferramenta SoapSUDS extrai somente
metadados; ele no gera o cdigo-fonte para o objeto remoto.
b. Use a declarao Imports em espaos para nome Remoting, Remoting.Channelse
Remoting.Channels.Tcp e o nome da classe ServerClass para que voc no precisa
qualificar declaraes nesses namespaces posteriormente no seu cdigo. Voc deve usar a
instruo Imports antes de quaisquer outras declaraes.
c. Imports System.Runtime.Remoting
d. Imports System.Runtime.Remoting.Channels
e. Imports System.Runtime.Remoting.Channels.Tcp
f. Imports ServerClass

g. Declare uma varivel para inicializar um objeto TcpChannel que o cliente usar para se
conectar ao aplicativo do servidor. Use o mtodo RegisterChannel para registrar o canal
com os servios de canal. Adicione o seguinte cdigo de declarao no procedimento
Main do mdulo principal:
h. Dim chan As TcpChannel = New TcpChannel()
i. ChannelServices.RegisterChannel(chan)

j. Declarar e criar uma instncia do servidor remoto. Neste exemplo, use o mtodo
GetObject do objeto Activator para instanciar o objeto myRemoteClass e especificar os
seguintes parmetros no cdigo:

1. O nome completo do tipo do objeto que est sendo registrado (que


ServerClass.myRemoteClass neste exemplo), seguido do nome do assembly
ServerClass. Especifique o nome do namespace, bem como o nome da classe. Como
voc no especificou um espao para nome na seo anterior, o namepace de raiz padro
usado.
2. Ative o URI do objeto. O URI deve incluir o protocolo (TCP), o nome do
computador (localhost), a porta (8085) e o ponto de extremidade do objeto de
servidor (RemoteTest). Para acessar o servidor remoto ServerClass que est
localizado no servidor local, use o URI tcp://localhost:8085 / RemoteTest.

k. Dim obj As myRemoteClass


l.
m. Obj = CType(Activator.GetObject( _
n. Type.GetType("myRemoteClass, ServerClass"), _
o. "tcp://localhost:8085/RemoteTest"), myRemoteClass)
p.
q. If obj Is Nothing Then
r. Console.WriteLine("Could not locate server")
s. Else
t. If obj.SetString("Sending String to Server") Then
u. Console.WriteLine("Success: Check the other console to
verify.")
v. Else
w. Console.WriteLine("Sending the test string has failed.")
x. End If
y. End If

b. Use o mtodo ReadLine do objeto Console para manter o aplicativo cliente em


execuo.
c. Console.WriteLine("Press <ENTER> to exit...")
d. Console.ReadLine()

e. Crie seu projeto.


f. Certifique-se de que o aplicativo do servidor est sendo executado. (Refere-se ao arquivo
.exe que voc criou na 300951.)
g. Execute o projecto e testar a comunicao de cliente para servidor.

REFERNCIAS

Para obter uma viso geral do .NET Remoting, consulte a documentao do guia do desenvolvedor do
Microsoft.NET Framework.

Para obter mais informaes sobre a classe TcpChannel , consulte a seguinte documentao de
biblioteca de classes do.NET Framework:
http://msdn.microsoft.com/en-us/library/System.Runtime.Remoting.Channels.TCP.TcpChannel
(VS.71).aspx
Para obter mais informaes sobre Microsoft .NET Remoting, consulte os seguintes artigos tcnicos
(gerais) desenvolvimento do .NET:
"Introduo ao Microsoft .NET Framework Remoting"
http://msdn2.microsoft.com/en-us/library/ms973864.aspx

"Microsoft .NET Remoting: uma viso geral tcnica"


http://msdn.microsoft.com/en-us/library/ms973857.aspx
Para obter mais informaes sobre o mtodo de Activator.GetObject , consulte a seguinte
documentao de biblioteca de classes do.NET Framework:
http://msdn.microsoft.com/en-us/library/System.Activator.GetObject (VS.71).aspx
Para obter mais informaes sobre o mtodo Type. GetType , consulte a seguinte documentao de
biblioteca de classes do.NET Framework:
http://msdn.microsoft.com/en-us/library/System.Type.GetType (VS.71).aspx
Voltar para o incio | Submeter comentrios

Propriedades
ID do artigo: 300943 - ltima reviso: quarta-feira, 9 de maio de 2007 - Reviso: 4.5

A informao contida neste artigo aplica-se a:

Bibliotecas de Classes do Microsoft .NET Framework 1.0


Microsoft Visual Basic .NET 2002 Standard Edition