Mega Code Archive

 
Categories / VB.Net / Network Remote
 

Your first Remote client and server

///////////////////////////////RemoteObject: general.vb // Complie: vbc /target:library  general.vb Public Interface IEmployeeManager     Function getEmployee(ByVal id As Integer) As Employee End Interface <Serializable()> _ Public Class Employee     Public FirstName As String     Public LastName As String     Public DateOfBirth As DateTime     Public Sub New()         Console.WriteLine("Employee.constructor: Object created")     End Sub 'New     Public Function getAge() As Integer         Console.WriteLine("In getAge Method")         Return 30     End Function End Class /////////////////////////////test.vb // Complie: 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 Imports System.Runtime.Remoting.Proxies Imports System.Runtime.Remoting.Messaging Module Client     Sub Main()         Dim channel As New HttpChannel()         ChannelServices.RegisterChannel(channel,false)         Dim mgr As IEmployeeManager = CType(Activator.GetObject( _             GetType(IEmployeeManager), "http://localhost:1234/EmployeeManager.soap"), _             IEmployeeManager)         Console.WriteLine("Client.Main(): Reference to EmployeeManager acquired")         Dim cust As Employee = mgr.getEmployee(4711)         Dim age As Integer = cust.getAge()         Console.WriteLine("Client.Main(): Employee {0} {1} is {2} years old.", _             cust.FirstName, cust.LastName, age)         Console.ReadLine()     End Sub End Module ///////////////////////////server.vb // Complie: 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 Class EmployeeManager     Inherits MarshalByRefObject     Implements IEmployeeManager     Public Sub New()         Console.WriteLine("EmployeeManager.constructor: Object created")     End Sub     Public Function getEmployee(ByVal id As Integer) As Employee _     Implements IEmployeeManager.getEmployee         Console.WriteLine("EmployeeManager.getEmployee): Called")         Dim tmp As New Employee()         tmp.FirstName = "James"         tmp.LastName = "Band"         tmp.DateOfBirth = New DateTime(1007, 7, 4)         Console.WriteLine(("EmployeeManager.getEmployee(): Returning " & _             "Employee-Object"))         Return tmp     End Function End Class Module ServerStartup     Sub Main()         Console.WriteLine("ServerStartup.Main(): Server started")         Dim chnl As New HttpChannel(1234)         ChannelServices.RegisterChannel(chnl,false)         RemotingConfiguration.RegisterWellKnownServiceType( _             GetType(EmployeeManager), _             "EmployeeManager.soap", _             WellKnownObjectMode.Singleton)                  Console.ReadLine()     End Sub End Module