public async static Task Initialize(Action callBackWhenConnected, Action <Exception> callBackWhenExceptionOccured) { SystemConfig config = await new YummyOnlineManager().GetSystemConfig(); client = new TcpClient(IPAddress.Parse(config.TcpServerIp), config.TcpServerPort, new SystemConnectProtocol()); client.CallBackWhenMessageReceived = (t, p) => { if (t == TcpProtocolType.TcpServerStatusInform) { TcpServerStatusInformProtocol protocol = (TcpServerStatusInformProtocol)p; tcpServerStatusProtocol = protocol.Status; getTcpServerStatusFinished.Set(); } }; client.CallBackWhenConnected = () => { callBackWhenConnected(); }; client.CallBackWhenExceptionOccured = e => { callBackWhenExceptionOccured(e); }; client.Start(); }
public TcpServerStatusProtocol GetTcpServerStatus() { TcpServerStatusProtocol protocol = new TcpServerStatusProtocol(); foreach (var p in waitingForVerificationClients.Clients) { protocol.WaitingForVerificationClients.Add(getClientStatus(p)); } protocol.SystemClient = getClientStatus(systemClient.ClientInfo); foreach (var pair in newDineInformClients.Clients) { protocol.NewDineInformClients.Add(new NewDineInformClientStatus { Guid = pair.Key.Guid, Description = pair.Key.Description, Status = getClientStatus(pair.Value) }); } foreach (var pair in printerClients.Clients) { protocol.PrinterClients.Add(new PrinterClientStatus { HotelId = pair.Key, WaitedCount = printerClients.WaitedQueue[pair.Key].Count, Status = getClientStatus(pair.Value) }); } return(protocol); }
static void displayTcpServerStatus(TcpServerStatusProtocol status) { Console.WriteLine("WaitingForVerificationClients:"); foreach (var p in status.WaitingForVerificationClients) { displayClientStatus(p); } Console.WriteLine("========================"); Console.WriteLine("SystemClient:"); if (status.SystemClient.IsConnected) { displayClientStatus(status.SystemClient); } else { Console.WriteLine("Disconnected"); } Console.WriteLine("========================"); Console.WriteLine("NewDineInformClients:"); foreach (var p in status.NewDineInformClients) { Console.WriteLine("---------------------"); string guid = p.Guid.ToString(); Console.WriteLine($"Guid: {guid.Substring(0, 4)}...{guid.Substring(guid.Length - 4, 4)}, Description: {p.Description}"); if (p.Status.IsConnected) { displayClientStatus(p.Status); } else { Console.WriteLine("Disconnected"); } } Console.WriteLine("========================"); foreach (var p in status.PrinterClients) { Console.Write($"Hotel {p.HotelId}: "); if (p.Status.IsConnected) { displayClientStatus(p.Status); Console.WriteLine($"\t({p.WaitedCount} standing by)"); } else { Console.WriteLine("Disconnected"); } } }
public static dynamic GetTcpServerInfo() { Process process = getTcpServerProcess(); if (process == null) { return(new { IsStarted = false, }); } TcpServerStatusProtocol status = SystemTcpClient.GetTcpServerStatus(); return(new { IsStarted = true, ProcessName = process.ProcessName, StartTime = process.StartTime, Memory = curpcp.NextValue() / (1024 * 1024), Cpu = curtime.NextValue() / Environment.ProcessorCount, Status = status }); }
private void requestTcpServerStatus() { TcpServerStatusProtocol tcpServerStatus = getTcpServerStatus(); send(ClientInfo.Client, new TcpServerStatusInformProtocol(tcpServerStatus)); }