Laden...

Remoting Netzwerkproblem

Erstellt von e86 vor 19 Jahren Letzter Beitrag vor 19 Jahren 1.752 Views
E
e86 Themenstarter:in
56 Beiträge seit 2004
vor 19 Jahren
Remoting Netzwerkproblem

ich habe mich über das wochende mit dem remoting unter c# beschäftigt. dazu habe ich sehr viele tutorials consultiert. einige waren von codeproject.com.

bei einem habe ich dann mal ein bein in die tür bekommen, nur leider versucht mich ein kleiner bug, wieder heraus zudrengeln.

meine ausgangssituation:

3 Dateien:

Projekt: Server

  • Server.cs
  • ServerClass.cs

Projekt: Client

  • Client.cs
    -ServerClass.cs

Inhalt ServerClass.cs:

using System;

 namespace NServiceClass
 {
  public class ServiceClass : MarshalByRefObject
  {
   private string text;


   public string Text
   {
    get
    {
     return this.text;
    }
    set
    {
     this.text = value;
    }
   }

  }
 }

Inhalt Server.cs:

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;

using NServiceClass;

namespace DefaultNamespace
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			HttpChannel channel = new HttpChannel(8080);
			ChannelServices.RegisterChannel(channel);
			
			ServiceClass remoteObject = new ServiceClass();
			remoteObject.Text = "Hello Remote-World!";
			
			ObjRef reference = RemotingServices.Marshal( remoteObject,
			"remoteObjectURI");
			
			Console.WriteLine ("Server laeuft...");
			
			Console.ReadLine();
			
		}
	}
}

Und die 3. Datei, Client.cs:

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;

using NServiceClass;

namespace DefaultNamespace
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			HttpChannel channel = new HttpChannel(0);
			ChannelServices.RegisterChannel(channel);
			
			RemotingConfiguration.RegisterWellKnownClientType(typeof(ServiceClass),
			"http://localhost:8080/remoteObjectURI");
		
			ServiceClass remote = new ServiceClass();
			
			Console.WriteLine(remote.Text);
			
			Console.ReadLine ();
		}
	}
}

mein problem:

ich habe statt http://localhost:8080/remoteObjectURI, http://111.111.111.112:8080/remoteObjectURI geschrieben. diese 1sen und die 2 sind die ip für meinen server-rechner.

ich habe nun auf dem o.g. serverrechner das Programm Server (Server.cs) laufen.
alles bestens.

nun starte ich auf einem 2. rechner im netzwerk das Clientprogramm (Client.cs). Hier wartet er eine kurze zeit (3sek.) und bricht dann ab.

Er sagt mir, dass er nicht auf den Socket etc. zugreifen kann.

was ich will:

das er mir im client programm 'hello remote-world' ausgibt.

kOOni

E
e86 Themenstarter:in
56 Beiträge seit 2004
vor 19 Jahren

hab ich mich etwas unverständlich ausgedrückt oder sonst was, dann schreibt mir bitte. würde mich freuen, wenn sich hier noch einige äußern würden. danke nochmal.

kOOni