예제 #1
0
        /// <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);
                }
            }
        }
예제 #2
0
파일: Program.cs 프로젝트: Darunphop/DNWS
        /// <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);
                }
            }
        }
예제 #3
0
파일: Program.cs 프로젝트: Darunphop/DNWS
 /// <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);
     }
 }
예제 #4
0
        /// <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);
                }
            }
        }
예제 #5
0
        /// <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);
                }
            }
        }
예제 #6
0
 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);
         }
     }
 }
예제 #7
0
        /// <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);
                }
            }
        }
예제 #8
0
 private void foo(HTTPProcessor hp)
 {
     hp.Process();
 }
예제 #9
0
 public void ThreadProc(HTTPProcessor stateinfo)
 {
     stateinfo.Process();
     Thread.Sleep(10);
 }