コード例 #1
0
 /// <summary>
 ///     启动TCP服务
 /// </summary>
 /// <param name="host">TCP服务端口信息</param>
 /// <param name="certificateFileName">安全证书文件</param>
 /// <returns>HTTP服务启动状态</returns>
 private TmphStartState start(TmphHost host, string certificateFileName)
 {
     var state = TmphStartState.TcpError;
     TmphServer server = null;
     Monitor.Enter(hostLock);
     try
     {
         if (hosts.TryGetValue(host, out server))
         {
             if (server.CheckCertificate(certificateFileName))
             {
                 ++server.DomainCount;
                 return TmphStartState.Success;
             }
             server = null;
             state = TmphStartState.CertificateMatchError;
         }
         else
         {
             state = TmphStartState.CertificateError;
             server = certificateFileName == null
                 ? new TmphServer(this, host)
                 : new TmphSslServer(this, host, certificateFileName);
             state = TmphStartState.TcpError;
             if (server.Start())
             {
                 hosts.Add(host, server);
                 return TmphStartState.Success;
             }
         }
     }
     catch (Exception error)
     {
         TmphLog.Error.Add(error, null, false);
     }
     finally
     {
         Monitor.Exit(hostLock);
     }
     TmphPub.Dispose(ref server);
     return state;
 }