From 4a58610446d5d02d4234b7209d14ac94be379c60 Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 19 Nov 2019 15:11:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=80=80=E5=87=BA=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E6=9E=90=E6=9E=84=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/win32main.cpp | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/server/win32main.cpp b/server/win32main.cpp index 31ad714b..cf2ad4c1 100644 --- a/server/win32main.cpp +++ b/server/win32main.cpp @@ -106,6 +106,14 @@ onceToken token1([](){ class CMD_main; +TcpServer* shellSrv = 0; +TcpServer* rtspSrv = 0; +TcpServer* rtmpSrv = 0; +TcpServer* httpSrv = 0; +//如果支持ssl,还可以开启https服务器 +TcpServer* httpsSrv = 0; +//支持ssl加密的rtsp服务器,可用于诸如亚马逊echo show这样的设备访问 +TcpServer* rtspSSLSrv = 0; static MediaServer_ServerState sServerState = MediaServerStartingUpState; const char* theXMLFilePath = 0; char* theServerName = ""; @@ -614,10 +622,10 @@ MediaServer_ServerState StartServer(CMD_main& cmd_main) { //简单的telnet服务器,可用于服务器调试,但是不能使用23端口,否则telnet上了莫名其妙的现象 //测试方法:telnet 127.0.0.1 9000 - TcpServer::Ptr shellSrv(new TcpServer()); - TcpServer::Ptr rtspSrv(new TcpServer()); - TcpServer::Ptr rtmpSrv(new TcpServer()); - TcpServer::Ptr httpSrv(new TcpServer()); + shellSrv = new TcpServer(); + rtspSrv = new TcpServer(); + rtmpSrv = new TcpServer(); + httpSrv = new TcpServer(); shellSrv->start(shellPort); rtspSrv->start(rtspPort);//默认10554 @@ -626,12 +634,12 @@ MediaServer_ServerState StartServer(CMD_main& cmd_main) { httpSrv->start(httpPort);//默认80 //如果支持ssl,还可以开启https服务器 - TcpServer::Ptr httpsSrv(new TcpServer()); + httpsSrv = new TcpServer(); //https服务器,支持websocket httpsSrv->start(httpsPort);//默认443 //支持ssl加密的rtsp服务器,可用于诸如亚马逊echo show这样的设备访问 - TcpServer::Ptr rtspSSLSrv(new TcpServer()); + rtspSSLSrv = new TcpServer(); rtspSSLSrv->start(rtspsPort);//默认322 installWebApi(); @@ -660,6 +668,14 @@ void RunServer() { unInstallWebApi(); unInstallWebHook(); + + if (shellSrv) delete shellSrv; shellSrv = 0; + if (rtspSrv) delete rtspSrv; rtspSrv = 0; + if (rtmpSrv) delete rtmpSrv; rtmpSrv = 0; + if (httpSrv) delete httpSrv; httpSrv = 0; + if (httpsSrv) delete httpsSrv; httpsSrv = 0; + if (rtspSSLSrv) delete rtspSSLSrv; rtspSSLSrv = 0; + //休眠1秒再退出,防止资源释放顺序错误 InfoL << "程序退出中,请等待..."; sleep(1);