コード例 #1
0
ファイル: NetworkServer.cs プロジェクト: galshav/ImageService
        public void Start()
        {
            m_Logger.Log("Starting localhost communication server.", MessageTypeEnum.INFO);
            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(LOCALHOST), m_Port);

            m_Listener = new TcpListener(endPoint);
            m_Listener.Start();
            m_Logger.Log($"Waiting for new connections on port {m_Port}", MessageTypeEnum.INFO);
            Task task = new Task(() =>
            {
                while (true)
                {
                    try
                    {
                        TcpClient client = m_Listener.AcceptTcpClient();
                        ClientConnectedEventArgs args = new ClientConnectedEventArgs();
                        args.Client = client;
                        ClientConnected.Invoke(this, args);
                        m_Logger.Log("New connection accepted", MessageTypeEnum.INFO);
                        m_ClientHandler.handleClient(client, m_Controller, m_Logger);
                        m_Logger.Log("QUITING CLIENT", MessageTypeEnum.WARNING);
                        clientDisconnected.Invoke(this, client);
                    }

                    catch (SocketException m_Error)
                    {
                        m_Logger.Log($"Got exception: {m_Error.ToString()}", MessageTypeEnum.INFO);
                        break;
                    }
                }
            });

            task.Start();
        }