Avatar billede staever Nybegynder
17. marts 2007 - 10:33 Der er 1 løsning

Remoting mellem server og clientcomputer

Jeg er ved at lave en server, som skal bruge et administrativt interface. Dette har jeg valgt at lave gennem remoting, mit problemer dog, at det kun virker hvis både server og client program kører på samme maskine, hvilket ikke er så hensigtsmæssigt.

Jeg har forsøgt at illustrere mine 2 filer (server, dll, client) kort på følgende billede: www.developers.dk/remoting.jpg

Mit spørgsmål lyder derfor på, om der er noget jeg har glemt i min kode, som gør at den kan gå videre til en anden computer, eller har gjort forkert. Synes jeg har forsøgt at ændre "localhost" til navnet på min server, uden held. Det skal siges at ikke alle metoder i de 3 klasser er med

Koden til de 3 filer ser således ud:

SERVER

public class Server: RemoteDLL{
  public Server(){
      // using TCP protocol
      TcpChannel channel = new TcpChannel(8080);
      ChannelServices.RegisterChannel(channel, true);
      RemotingConfiguration.RegisterWellKnownServiceType(typeof MyRemoteObject), "HelloWorld", WellKnownObjectMode.Singleton);
      //************************************* TCP *************************************//
      Cache.getInstance().Attach(this);
  }
}

DLL

public interface RemoteDLL{
  // Diverse metoder der skal implementeres i serveren
}
public class MyRemoteObject : MarshalByRefObject
{
    public MyRemoteObject()
    {
    }
}
public class Cache
{
    private static Cache instance;
    public RemoteDLL server;
     
    public Cache()
    {
        instance = this;
    }
    public void Attach(RemoteDLL server)
    {
        this.server = server;
    }
}

CLIENT

public class Client{

  private MyRemoteObject server;

  public Client(){
      TcpChannel chan = new TcpChannel();
      ChannelServices.RegisterChannel(chan, true);

      server = (MyRemoteObject)Activator.GetObject(typeof(MyRemoteObject), "tcp://localhost:8080/HelloWorld");
  }
}
Avatar billede staever Nybegynder
18. marts 2007 - 22:41 #1
svar fundet... følgende skulle være false istedet for true på begge sider:
ChannelServices.RegisterChannel(channel, true);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester