public void Run() { this.transport = new SocketServerTransport(3100); while (!this.stop) { try { var channel = this.transport.Listen(); var service = new PingPongService(channel); var thread = new Thread(service.Run); thread.Start(); this.services.Add(new Tuple <PingPongService, Thread>(service, thread)); } catch (SocketException) { } catch (TimeoutException) { } this.services.RemoveAll(o => !o.Item1.IsRunning); } foreach (var pingPongService in this.services) { pingPongService.Item1.Stop(); pingPongService.Item2.Join(1000); } }
private static void ServerThread() { var transport = new SocketServerTransport(4242); var server = new RpcServer(transport); Program.serverInstance = server; var service = new SettingsService(server.EventSource); server.RegisterService(service); server.Run(); service.Dispose(); }