C# .net远程处理,如果连接丢失,如何重新连接?
我有这个工作,但我不知道如何预测连接何时中断,需要重新连接到服务器 我想做的是,如果.net远程处理服务器退出,让客户端立即连接到该服务器,就像继续尝试连接,如果不需要,则忽略它 谢谢你的帮助 这是我的密码:C# .net远程处理,如果连接丢失,如何重新连接?,c#,.net-remoting,C#,.net Remoting,我有这个工作,但我不知道如何预测连接何时中断,需要重新连接到服务器 我想做的是,如果.net远程处理服务器退出,让客户端立即连接到该服务器,就像继续尝试连接,如果不需要,则忽略它 谢谢你的帮助 这是我的密码: namespace TaskClient { using System; using System.Reflection; using System.Runtime.Remoting.Channels; using System.Runtime.Remoti
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);
}
}
}
}
您是否可以每隔(X)秒/毫秒将心跳信号发送到/从服务器发送到连接的客户端。如果连接的客户端在一段时间后未收到其心跳信号,请重新启动连接进程,或者让客户端将其发送到服务器。