2

これは機能していますが、接続がいつ切断され、サーバーに再接続する必要があるかを予測する方法がわかりません。

私がやりたいのは、クライアントがドロップアウトした場合に.netリモートサーバーにすぐに接続することです。接続を試み続け、必要がなければ無視するようなものです。

助けていただければ幸いです。

ここに私のコードがあります:

namespace TaskClient
{
    using System;
    using System.Reflection;
    using System.Runtime.Remoting.Channels;
    using System.Runtime.Remoting.Channels.Tcp;
    using System.Threading;
    using TaskShared;

    class Program
    {
        static void Main(string[] args)
        {
            TcpChannel chan = new TcpChannel();
            ChannelServices.RegisterChannel(chan, false);
            Connections remObject = (Connections)Activator.GetObject(typeof(Connections), "tcp://localhost:8085/TaskServer");

            if (remObject == null)
            {
                Console.WriteLine("Could not connect to TaskServer. (tcp://localhost:8085/TaskServer)");
            }
            else
            {
                Console.WriteLine("Connected to Task Server.");

                var rt = new TestTask() 
                {
                    ApplicationName = Assembly.GetExecutingAssembly().FullName,
                    ComputerName = Environment.MachineName,
                    VersionInfo = "1.0.0",
                    JobRunning = "None"
                };

                remObject.Add(rt);
            }


            while (true)
            {
                //TODO:
                //Check if connected.. how?
                //Re-create the connection... how?

                //doing this simple won't work:
                if (remObject == null)
                    remObject = (Connections)Activator.GetObject(typeof(Connections), "tcp://localhost:8085/TaskServer");



                remObject.Invalidate(remObject[rt]);

                Thread.Sleep(1000);
            }
        }
    }
}
4

0 に答える 0