CFServer.listener2.startup C# (CSharp) Method

startup() public method

public startup ( ) : void
return void
        public void startup()
        {
            _tcpl.Start(100);
            aTimer.Elapsed += new ElapsedEventHandler(ping);
            aTimer.Interval = 5000;
            aTimer.Enabled = true;

            try
            {
                using (StreamReader sr = File.OpenText(path))
                {
                    string s = "";
                    while ((s = sr.ReadLine()) != null)
                    {
                        try
                        {
                            string[] info = s.Split();
                            _client_password.Add(info[0], info[1]);
                        }
                        catch { }
                    }
                }
            }
            catch
            {
                FileStream fs = new FileStream(path, FileMode.Create);
                fs.Close();
            }
            Thread cmdthr = new Thread(new ThreadStart(cmdThread));
            cmdthr.Start();

                while (true)
                {

                    TcpClient clientcp = _tcpl.AcceptTcpClient();
                    NetworkStream nets = clientcp.GetStream();
                    IFormatter formatter = new BinaryFormatter();
                    packet logindata = (packet)formatter.Deserialize(nets);

                    string userpass = _client_password[logindata.Name] as string;

                    mutTable.WaitOne();
                    if (_client_table.ContainsKey(logindata.Name) == true)    // username has already existed
                    {
                        mutTable.ReleaseMutex();

                        packet error = new packet("e", null, null, -1,0,0,false);
                        formatter.Serialize(nets, error);
                        clientcp.Close();
                    }
                    else if (_client_password.ContainsKey(logindata.Name) == true && userpass != logindata.Msg)
                    {
                        packet mistake = new packet("m", null, null, -1,0,0,false);
                        formatter.Serialize(nets, mistake);
                        clientcp.Close();
                    }
                    else
                    {
                        _client_table.Add(logindata.Name, clientcp);
                        availableusers.Add(logindata.Name);
                        mutTable.ReleaseMutex();
                        mutpac.WaitOne();
                        packetQ.Enqueue(logindata);
                        mutpac.ReleaseMutex();

                    }
                }
        }

Usage Example

Esempio n. 1
0
        static void Main(string[] args)
        {
            IPAddress serverip = IPAddress.Parse("140.112.18.202");
            int port = 800;
            IPEndPoint serverhost = new IPEndPoint(serverip, port);
            TcpListener tcpl = new TcpListener(serverhost);
            Console.WriteLine("Server started at: " + serverhost.Address.ToString() + " port:" + port);

            listener2 lc = new listener2(tcpl);
            lc.startup();
        }