public static JobServer get() { if (instance == null) { instance = new JobServer(); } return(instance); }
public void DoWork(ref uint port) { Console.WriteLine("Wel..."); ServiceHost host = null; NetTcpBinding tcp = new NetTcpBinding(); JobServer server = JobServer.get(); tcp.MaxBufferPoolSize = int.MaxValue; tcp.MaxBufferSize = int.MaxValue; tcp.MaxConnections = 100; tcp.MaxReceivedMessageSize = int.MaxValue; //Find a free port //uint port = 6000; bool connected = false; while (port <= 7000 && !connected) { try { host = new ServiceHost(server); host.AddServiceEndpoint(typeof(JobServerInterface), tcp, String.Concat("net.tcp://127.0.0.1:", port.ToString(), "/ClientServer")); host.Open(); connected = true; } catch (AddressAlreadyInUseException e) { port++; } } portSet = true; //Add this client to Web Server list of clients RestClient webServer = new RestClient("https://localhost:44370/"); RestRequest req = new RestRequest("api/clients/add"); req.AddJsonBody(new ClientData("127.0.0.1", port)); IRestResponse resp = webServer.Post(req); Console.WriteLine(String.Concat("...come! System online on port ", port.ToString())); /*DEBUGGING: Console control over job posting * bool exit = false; * while (exit != true) * { * string input = Console.ReadLine(); * * if (input.Equals("exit") || input.Equals("close")) * { * exit = true; * } * else if (input.Equals("post job")) * { * server.SubmitJob("test"); * } * }*/ //server.SubmitJob("test"); //server.SubmitJob("test2"); while (!shouldStop) { Console.ReadLine(); } host.Close(); }