移除 console.writeline,linux守护进程中,该方法不能阻止程序运行

客户端不存在时,服务不抛异常
This commit is contained in:
SpringHgui 2019-12-16 20:27:57 +08:00
parent 666a1c1392
commit 87e4fe79f5
4 changed files with 21 additions and 11 deletions

View File

@ -33,8 +33,6 @@ namespace FastTunnel.Client
{
var FastTunnelClient = new FastTunnelClient(settings.ClientSettings, new ConsoleLogger());
FastTunnelClient.Login();
Console.ReadLine();
}
}
}

View File

@ -36,10 +36,9 @@ namespace FastTunnel.Core.Client
// 登录
connecter.Send(new Message<LogInRequest> { MessageType = MessageType.C_LogIn, Content = new LogInRequest { WebList = _clientConfig.Webs } });
_logger.Info("登录成功");
Thread th = new Thread(ReceiveServer);
th.IsBackground = true;
th.Start(connecter.Client);
_logger.Debug("登录成功");
ReceiveServer(connecter.Client);
_logger.Debug("客户端退出");
}
private void ReceiveServer(object obj)
@ -51,6 +50,12 @@ namespace FastTunnel.Core.Client
while (true)
{
int n = client.Receive(buffer);
if (n == 0)
{
client.Close();
break;
}
string words = Encoding.UTF8.GetString(buffer, 0, n);
if (!string.IsNullOrEmpty(lastBuffer))
{

View File

@ -50,7 +50,6 @@ namespace FastTunnel.Core.Server
_logger.Debug($"监听HTTP -> {serverSettings.BindAddr}:{serverSettings.ProxyPort_HTTP}");
}
//接收消息
void ReceiveCustomer(object o)
{
@ -105,9 +104,10 @@ namespace FastTunnel.Core.Server
_logger.Debug($"Host: {domain}");
WebInfo web;
if (!WebList.TryGetValue(domain, out web))
if (WebList.TryGetValue(domain, out web))
{
throw new ClienOffLineException("客户端不存在");
_logger.Error($"客户端不存在:{domain}");
return;
}
var msgid = Guid.NewGuid().ToString();
@ -165,11 +165,14 @@ namespace FastTunnel.Core.Server
var key = $"{item.SubDomain }.{serverSettings.Domain}";
if (WebList.ContainsKey(key))
{
_logger.Debug($"renew domain {key}");
WebList.Remove(key);
WebList.Add(key, new WebInfo { Socket = client, WebConfig = item });
}
else
{
_logger.Debug($"new domain {key}");
WebList.Add(key, new WebInfo { Socket = client, WebConfig = item });
}
}

View File

@ -31,10 +31,14 @@ namespace FastTunnel.Server
private static void Run(Appsettings settings)
{
var server = new FastTunnelServer(settings.ServerSettings, new ConsoleLogger());
var logger = new ConsoleLogger();
var server = new FastTunnelServer(settings.ServerSettings, logger);
server.Run();
Console.ReadLine();
while (true)
{
Thread.Sleep(10000 * 60);
}
}
}
}