One Client communicates with two servers : Remote Soap Server « Network Remote « VB.Net

Home
VB.Net
1.2D
2.Application
3.Class
4.Data Structure
5.Data Types
6.Database ADO.net
7.Development
8.Event
9.File Directory
10.Generics
11.GUI
12.Language Basics
13.LINQ
14.Network Remote
15.Security
16.Thread
17.Windows Presentation Foundation
18.Windows System
19.XML
20.XML LINQ
VB.Net Tutorial
VB.Net by API
VB.Net » Network Remote » Remote Soap ServerScreenshots 
One Client communicates with two servers

///////////////////////////////////general.vb
// Compile: vbc /target:library  general.vb
Imports System

Public MustInherit Class BaseRemoteObject
    Inherits MarshalByRefObject
    Public MustOverride Sub setValue(ByVal newval As Integer)
    Public MustOverride Function getValue() As Integer
End Class

Public MustInherit Class BaseWorkerObject
    Inherits MarshalByRefObject
    Public MustOverride Sub doSomething(ByVal usethis As BaseRemoteObject)
End Class


Public Class MyRemoteObject
    Inherits BaseRemoteObject
    Private myvalue As Integer

    Public Sub New()
    End Sub

    Public Overrides Sub setValue(ByVal newval As Integer)
        myvalue = newval
    End Sub

    Public Overrides Function getValue() As Integer
        Return myvalue
    End Function
End Class

Public Class MyWorkerObject
    Inherits BaseWorkerObject

    Public Sub New()
    End Sub

    Public Overrides Sub doSomething(ByVal usethis As BaseRemoteObject)
        Dim tmp As Integer = usethis.getValue()
        usethis.setValue(70)
    End Sub
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
Imports System.Runtime.Remoting.Proxies

Module Client

    Sub Main()
        Dim channel As New HttpChannel()
        ChannelServices.RegisterChannel(channel,false)

        Dim obj As BaseRemoteObject = CType(Activator.GetObject_
            GetType(BaseRemoteObject), _
            "http://localhost:1234/MyRemoteObject.soap"), BaseRemoteObject)

        Console.WriteLine("Server [1] acquired")

        Console.WriteLine("Client.Main(): Will set value to 42")
        obj.setValue(42)
        Dim tmp As Integer = obj.getValue()
        Console.WriteLine("Client.Main(): New server side value {0}", tmp)

        Dim workerobj As BaseWorkerObject = CType(Activator.GetObject_
            GetType(BaseWorkerObject), _
            "http://localhost:1235/MyWorkerObject.soap"), BaseWorkerObject)

        Console.WriteLine("Server [2] acquired")

        Console.WriteLine("Will now call method on Server [2]")
        workerobj.doSomething(obj)

        tmp = obj.getValue()
        Console.WriteLine("New server side value {0}", tmp)

    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()
        Dim chnl As New HttpChannel(1234)
        ChannelServices.RegisterChannel(chnl,false)
        RemotingConfiguration.RegisterWellKnownServiceType_
            GetType(MyRemoteObject), _
            "MyRemoteObject.soap", _
            WellKnownObjectMode.Singleton)

        Console.WriteLine("ServerStartup.Main(): Server [1] started")


        
        Console.ReadLine()
    End Sub
End Module


////////////////////////////////////////////////////////////////////////////


Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Channels

Module ServerStartup
    Sub Main()
        Dim chnl As New HttpChannel(1235)

        ChannelServices.RegisterChannel(chnl,false)

        RemotingConfiguration.RegisterWellKnownServiceType_
            GetType(MyWorkerObject), _
            "MyWorkerObject.soap", _
            WellKnownObjectMode.SingleCall)

        Console.WriteLine("ServerStartup.Main(): Server [2] started")

        Console.ReadLine()
    End Sub
End Module

           
       
Related examples in the same category
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.