///////////////////////////////////general.vb
// Compile: vbc /target:library general.vb
Imports System
Public Class MyRemoteObject
Inherits MarshalByRefObject
Private myvalue As Integer
Public Sub New()
Console.WriteLine("MyRemoteObject.Constructor: New Object created")
End Sub 'New
Public Sub New(ByVal startvalue As Integer)
Console.WriteLine("MyRemoteObject.Constructor: .ctor called with {0}", _
startvalue)
myvalue = startvalue
End Sub
Public Sub setValue(ByVal newval As Integer)
Console.WriteLine("MyRemoteObject.setValue(): old {0} new {1}", _
myvalue, newval)
myvalue = newval
End Sub
Public Function getValue() As Integer
Console.WriteLine("MyRemoteObject.getValue(): current {0}", _
myvalue)
Return myvalue
End Function
End Class
///////////////////////////////////test.vb
// Compile: vbc /t:exe /r:general.dll test.vb
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Channels
Module Client
Sub Main()
Dim channel As New HttpChannel()
ChannelServices.RegisterChannel(channel,false)
RemotingConfiguration.RegisterActivatedClientType( _
GetType(MyRemoteObject), "http://localhost:1234/MyServer")
Console.WriteLine("Client.Main(): Creating first object")
Dim obj1 As New MyRemoteObject()
obj1.setValue(42)
Console.WriteLine("Client.Main(): Creating second object")
Dim obj2 As New MyRemoteObject()
obj2.setValue(11)
Console.WriteLine("Obj1.getValue(): {0}", obj1.getValue())
Console.WriteLine("Obj2.getValue(): {0}", obj2.getValue())
End Sub
End Module
///////////////////////////////////server.vb
// vbc /target:exe /r:general.dll server.vb
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Channels
Module ServerStartup
Sub Main()
Console.WriteLine("ServerStartup.Main(): Server started")
Dim chnl As New HttpChannel(1234)
ChannelServices.RegisterChannel(chnl,false)
RemotingConfiguration.ApplicationName = "MyServer"
RemotingConfiguration.RegisterActivatedServiceType( _
GetType(MyRemoteObject))
Console.ReadLine()
End Sub
End Module
|