58 lines
1.8 KiB
C#
58 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Runtime.Remoting;
|
|
using System.Runtime.Remoting.Channels;
|
|
using System.Runtime.Remoting.Channels.Tcp;
|
|
using OpenSim.Region.ScriptEngine.Common;
|
|
|
|
namespace OpenSim.Region.ScriptEngine.RemoteServer
|
|
{
|
|
class RemoteServer
|
|
{
|
|
// Handles connections to servers
|
|
// Create and returns server object
|
|
|
|
public RemoteServer()
|
|
{
|
|
TcpChannel chan = new TcpChannel();
|
|
ChannelServices.RegisterChannel(chan, true);
|
|
}
|
|
|
|
public ScriptServerInterfaces.ServerRemotingObject Connect(string hostname, int port)
|
|
{
|
|
// Create a channel for communicating w/ the remote object
|
|
// Notice no port is specified on the client
|
|
|
|
try
|
|
{
|
|
|
|
// Create an instance of the remote object
|
|
ScriptServerInterfaces.ServerRemotingObject obj = (ScriptServerInterfaces.ServerRemotingObject)Activator.GetObject(
|
|
typeof(ScriptServerInterfaces.ServerRemotingObject),
|
|
"tcp://" + hostname + ":" + port + "/DotNetEngine");
|
|
|
|
// Use the object
|
|
if (obj.Equals(null))
|
|
{
|
|
System.Console.WriteLine("Error: unable to locate server");
|
|
}
|
|
else
|
|
{
|
|
return obj;
|
|
}
|
|
}
|
|
catch (System.Net.Sockets.SocketException)
|
|
{
|
|
System.Console.WriteLine("Error: unable to connect to server");
|
|
}
|
|
catch (System.Runtime.Remoting.RemotingException)
|
|
{
|
|
System.Console.WriteLine("Error: unable to connect to server");
|
|
}
|
|
return null;
|
|
|
|
}
|
|
}
|
|
}
|