static void LauchServerType2() { /** * LauchServerType2跟LauchServerType1相比,其他不变,只是服务器会定时(1000毫秒)向客户端发送ServerPush帧 */ Task task_timer = new Task(TaskTimer, cts.Token); try { server = new MyServer("127.0.0.1", 2020); Console.WriteLine("Server UUID : " + server.GetUUID()); Console.WriteLine("Server Status : " + server.GetStatus().ToString()); server.Start(); task_timer.Start(); } catch (System.Exception ex) { server = null; Console.WriteLine("创建和启动服务器发生异常:" + ex.Message); } Console.WriteLine("如果要停止服务器,请输入quit,然后回车:"); while (true) { string str = Console.ReadLine(); if (str == "quit") { if (server != null) { try { cts.Cancel(); task_timer.Wait(); server.Stop(); server = null; } catch (System.Exception ex) { server = null; Console.WriteLine("停止服务器发生异常:" + ex.Message); } } break; } else { Console.WriteLine("如果要停止服务器,请输入quit,然后回车:"); } } }
static void LauchServerType1() { /** * Command目录实现了4个帧类型值:Hello、Bye、Heartbeat和UploadFile * CmdHello : 服务器回应Hello字符串 * CmdBye : 服务器回应Bye字符串,并且关闭Session * CmdHeartbeart : 服务器收到什么就回什么 * CmdUploadFile : 上传文件,该帧是嵌套帧,即CmdUploadFile帧体包含2个TLV帧,第一个TLV帧是文件名,第二个TLV帧是文件的二进制数据 */ try { server = new MyServer("127.0.0.1", 2020); Console.WriteLine("Server UUID : " + server.GetUUID()); Console.WriteLine("Server Status : " + server.GetStatus().ToString()); server.Start(); } catch (System.Exception ex) { server = null; Console.WriteLine("创建和启动服务器发生异常:" + ex.Message); } Console.WriteLine("如果要停止服务器,请输入quit,然后回车:"); while (true) { string str = Console.ReadLine(); if (str == "quit") { if (server != null) { try { server.Stop(); server = null; } catch (System.Exception ex) { server = null; Console.WriteLine("停止服务器发生异常:" + ex.Message); } } break; } else { Console.WriteLine("如果要停止服务器,请输入quit,然后回车:"); } } }