/// <summary> /// Server starting point /// </summary> public void Start() { _port = Convert.ToInt32(Program.Configuration["Port"]); IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, _port); // Create listening socket, queue size is 5 now. serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serverSocket.Bind(localEndPoint); serverSocket.Listen(5); _parent.Log("Server started at port " + _port + "."); while (true) { try { // Wait for client clientSocket = serverSocket.Accept(); // Get one, show some info _parent.Log("Client accepted:" + clientSocket.RemoteEndPoint.ToString()); HTTPProcessor hp = new HTTPProcessor(clientSocket, _parent); hp.Process(); } catch (Exception ex) { _parent.Log("Server starting error: " + ex.Message + "\n" + ex.StackTrace); } } }
/// <summary> /// Server starting point /// </summary> public void Start() { while (true) { try { // Create listening socket, queue size is 5 now. IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, _port); serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serverSocket.Bind(localEndPoint); serverSocket.Listen(5); _parent.Log("Server started at port " + _port + "."); break; } catch (Exception ex) { _parent.Log("Server started unsuccessfully."); _parent.Log(ex.Message); } _port = _port + 1; } while (true) { try { // Wait for client clientSocket = serverSocket.Accept(); // Get one, show some info _parent.Log("I think Client accepted:" + clientSocket.RemoteEndPoint.ToString()); HTTPProcessor hp = new HTTPProcessor(clientSocket, _parent); if (_parent.threadMode.Equals("single")) { Thread InstanceCaller = new Thread(new ThreadStart(hp.Process)); InstanceCaller.Start(); } else if (_parent.threadMode.Equals("pool")) { WaitCallback callBack = new WaitCallback(poolFunc); ThreadPool.QueueUserWorkItem(callBack, hp); } else { hp.Process(); } } catch (Exception ex) { _parent.Log("Server starting error: " + ex.Message + "\n" + ex.StackTrace); } } }
/// <summary> /// Pool thread function /// </summary> private static void poolFunc(object state) { try { HTTPProcessor hp = (HTTPProcessor)state; hp.Process(); } catch (Exception ex) { Console.Write("Server starting error: " + ex.Message + "\n" + ex.StackTrace); } }
/// <summary> /// Server starting point /// </summary> public void Start() { _port = Convert.ToInt32(Program.Configuration["Port"]); IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, _port); int Model_server = 1; // Create listening socket, queue size is 5 now. serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serverSocket.Bind(localEndPoint); serverSocket.Listen(5); _parent.Log("Server started at port " + _port + "."); while (true) { try { // Wait for client clientSocket = serverSocket.Accept(); _parent.Log("Client accepted:" + clientSocket.RemoteEndPoint.ToString()); HTTPProcessor hp = new HTTPProcessor(clientSocket, _parent); // Single thread // hp.Process(); // End single therad switch (Model_server) { case 1: ThreadPool.QueueUserWorkItem(ThreadProc, hp); break; case 2: Thread clientThread = new Thread(hp.Process); clientThread.Start(); break; case 3: hp.Process(); break; } } catch (Exception ex) { _parent.Log("Server starting error: " + ex.Message + "\n" + ex.StackTrace); } } }
/// <summary> /// Server starting point /// </summary> public void Start() { _port = Convert.ToInt32(Program.Configuration["Port"]); IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, _port); // Create listening socket, queue size is 5 now. serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serverSocket.Bind(localEndPoint); serverSocket.Listen(5); _parent.Log("Server started at port " + _port + "."); RunType runType = RunType.thread; while (true) { try { // Wait for client clientSocket = serverSocket.Accept(); // Get one, show some info _parent.Log("Client accepted:" + clientSocket.RemoteEndPoint.ToString()); HTTPProcessor hp = new HTTPProcessor(clientSocket, _parent); switch (runType) { case RunType.normal: hp.Process(); break; case RunType.thread: Thread thread = new Thread(new ThreadStart(hp.Process)); thread.Start(); break; case RunType.threadPool: ThreadPool.QueueUserWorkItem(ThreadProc, hp); Thread.Sleep(50); break; } } catch (Exception ex) { _parent.Log("Server starting error: " + ex.Message + "\n" + ex.StackTrace); } } }
private void MainLoopSingleThread() { while (true) { try { // Wait for client clientSocket = serverSocket.Accept(); // Get one, show some info _parent.Log("Client accepted:" + clientSocket.RemoteEndPoint.ToString()); HTTPProcessor hp = new HTTPProcessor(clientSocket, _parent); hp.Process(); } catch (Exception ex) { _parent.Log("Server starting error: " + ex.Message + "\n" + ex.StackTrace); } } }
/// <summary> /// Server starting point /// </summary> public void Start() { List <Thread> Threadlist = new List <Thread>(); while (true) { try { // Create listening socket, queue size is 5 now. IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, _port); serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serverSocket.Bind(localEndPoint); serverSocket.Listen(5); _parent.Log("Server started at port " + _port + "."); break; } catch (Exception ex) { _parent.Log("Server started unsuccessfully."); _parent.Log(ex.Message); } _port = _port + 1; } while (true) { try { // Wait for client clientSocket = serverSocket.Accept(); // Get one, show some info _parent.Log("Client accepted:" + clientSocket.RemoteEndPoint.ToString()); HTTPProcessor hp = new HTTPProcessor(clientSocket, _parent); Threadlist.Add(new Thread(() => hp.Process())); Threadlist[Threadlist.Count].Start(); } catch (Exception ex) { _parent.Log("Server starting error: " + ex.Message + "\n" + ex.StackTrace); } } }
private void foo(HTTPProcessor hp) { hp.Process(); }
public void ThreadProc(HTTPProcessor stateinfo) { stateinfo.Process(); Thread.Sleep(10); }