public static void Start(WSServer srv) { int x = 0, y = 0; double ang = 0; while (true) { Tick(ref x, ref y, ref ang); srv.Broadcast(x + ";" + y); Thread.Sleep(100); } }
static void Main(string[] args) { // Устанавливаем максимальное и минимальное количество рабочих потоков ThreadPool.SetMinThreads(MinimumThreadCount, MinimumThreadCount); ThreadPool.SetMaxThreads(MaximumThreadCount, MaximumThreadCount); // Создаем экзмепляр сервера и запускаем его в отдельном потоке server = new WSServer(8181); server.OnClientConnected += server_OnClientConnected; server.OnAvailableToTransmit += server_OnAvailableToTransmit; server.OnClientQuit += server_OnClientQuit; server.OnMessageReceived += server_OnMessageReceived; server.OnBinaryReceived += server_OnBinaryReceived; Thread serverThread = new Thread(delegate() { server.Start(); }); serverThread.Start(); Thread testThread = new Thread(delegate() { SendTest.Start(server); }); testThread.Start(); while (true) { string line = Console.ReadLine(); string cmd = line.Split(' ')[0]; string uidNum, msg; int uid; switch (cmd) { case "send": if (line.IndexOf(' ') == -1) { break; } uidNum = line.Split(' ')[1]; if (int.TryParse(uidNum, out uid)) { msg = line.Substring("send".Length + uidNum.Length + 2); if (!server.Send(msg, uid)) { Console.WriteLine("Error while sending message to client #{0}. Client #{0} does not exist.", uid); } } else { Console.WriteLine("Could not parse client uid."); } break; case "broadcast": msg = line.Substring("broadcast".Length + 1); server.Broadcast(msg); break; case "close": if (line.IndexOf(' ') == -1) { break; } uidNum = line.Split(' ')[1]; if (int.TryParse(uidNum, out uid)) { if (!server.Close(uid)) { Console.WriteLine("Error while closing client #{0}. Client #{0} does not exist.", uid); } } else { Console.WriteLine("Could not parse client uid."); } break; case "closeall": server.CloseAll(); break; } } }