Foros del Web » Programación para mayores de 30 ;) » .NET »

.net remoting

Estas en el tema de .net remoting en el foro de .NET en Foros del Web. Hola a tod@s. Me estoy iniciando en el mundo del .net remoting y ya me han surgido los primeros problemas. Estoy haciendo una aplicación cliente-servidor ...
  #1 (permalink)  
Antiguo 26/05/2010, 02:40
 
Fecha de Ingreso: mayo-2010
Mensajes: 12
Antigüedad: 13 años, 11 meses
Puntos: 0
.net remoting

Hola a tod@s. Me estoy iniciando en el mundo del .net remoting y ya me han surgido los primeros problemas. Estoy haciendo una aplicación cliente-servidor que comparten un objeto remoto. El canal por el que se conectan es TCP a través de un archivo xml de configuración. La forma de conexión es de tipo singleton.
Al iniciarse, el servidor modifica el objeto remoto(que tiene 2 atributos,un int32 y un String) cambiando el int32. Entonces el cliente lee o debería(porque de momento no lo hace, :( )del objeto y según que número sea pues hará unas cosas u otras. No sé si el problema está al tratar el objeto con el server o con con el cliente, pues éste no lee el dato que le mando en el servidor.

Este es el código del cliente........................................... .........................


Imports System.Runtime.Remoting
Imports System.IO
Imports System.Security.Permissions

Public Class frmCliente

Dim contador As Integer = 0

Dim calc As New SimpleLibrary.Calculator

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

RemoteThreadButton.Enabled = False
'Al cargar el form se configura la conexion
RemotingConfiguration.Configure( _
AppDomain.CurrentDomain.SetupInformation.Configura tionFile, True)

Main()

End Sub

<SecurityPermission(SecurityAction.Demand, Flags:=SecurityPermissionFlag.RemotingConfiguratio n)> _
Public Shared Sub Main()

Dim obj As SimpleLibrary.Calculator = New SimpleLibrary.Calculator()

RemotingServices.SetObjectUriForMarshal(obj, "tcp://localhost:49341/Calculator.rem")
RemotingServices.Marshal(obj)

Console.WriteLine(RemotingServices.GetObjectUri(ob j))
frmCliente.cmbBillete.Text = obj.Billete

End Sub

la libreria que se trata como objeto remoto............................................ ........................


Imports System.Runtime.Remoting.ObjRef

<Serializable()> _
Public Class Calculator
Inherits MarshalByRefObject

Private codBillete As Int32
Private cadena As String

Public Property Billete() As Int32
Get
Billete = codBillete
End Get
Set(ByVal Value As Int32)
codBillete = Value
End Set
End Property

Public Property codCadena() As String
Get
codCadena = cadena
End Get
Set(ByVal Value As String)
cadena = Value
End Set
End Property

End Class

El server............................................ ........................

Imports System.Security.Permissions
Imports System.Runtime.Remoting
Imports System.IO
Imports System.Runtime.Serialization

Public Class frmServer

Dim contador As Integer = 0

Private Sub ComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged
cmdStart.Enabled = True
End Sub

Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click

Module1.Main()
ComboBox1.Enabled = False
Dim calc As New SimpleLibrary.Calculator
calc.Billete = ComboBox1.Text
Console.WriteLine(CStr(calc.Billete))
Console.ReadLine()

End Sub

End Class

El modulo del Server............................................ ........................


Imports System.Runtime.Remoting

Module Module1

Sub Main()
'RemotingConfiguration.Configure( _
' AppDomain.CurrentDomain.SetupInformation.Configura tionFile, True)

RemotingConfiguration.RegisterWellKnownServiceType ( _
GetType(SimpleLibrary.Calculator), _
"Calculator.rem", _
WellKnownObjectMode.Singleton)

Console.Write("Press <enter> to exit")
Console.Read()

End Sub

End Module

Los ficheros de conexión XML están correctos, pero si hace falta los envio.
Gracias por la colaboración. os espero, un saludo.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:04.