• (ASP.net)利用Application对象制作简单聊天室


    1.共四个页面,Default.aspx默认主页,Default2.aspx聊天室 default3.aspx显示用户列表,default4.aspx显示聊天内容,添加一个Global.asax全局程序集文件,初始化 Application对象值

    2.在global.asax中

      void Application_Start(object sender, EventArgs e)
        {
            // 在应用程序启动时运行的代码
            //建立用户列表
            string user = "";//用户列表
            Application["user"] = user;
            Application["userNum"] = 0;
            string chats = "";//聊天记录  
            Application["chats"] = chats;
            Application["current"] = 0;//聊天记录数
        }
       
        void Application_End(object sender, EventArgs e)
        {
            //  在应用程序关闭时运行的代码
            Application["user"] = "";
            Application["chats"] = "";
        }

    3.DEFAULT.ASPX中 

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int p_judge = 0;
            p_judge = Convert.ToInt32(Request["value"]);
            if (!IsPostBack)
            {
                if (p_judge == 1)
                    Response.Write("<script>alert('该用户已经存在')</script>");
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Application.Lock();
            int p_num;//在线人数
            string p_name;//登录用户
            string p_names;//已在线用户
            string[] p_users;//用户在线数组
            p_num = int.Parse(Application["userNum"].ToString());
            if (TextBox1.Text == "")
            {
                Response.Write("<script>alert('用户名不能为空')</script>");
                TextBox1.Focus();
            }
            else
            {
                p_name = TextBox1.Text.Trim();
                p_names = Application["user"].ToString();
                p_users = p_names.Split(',');
                for (int i = 0; i <= p_num - 1; i++)
                {
                    if (p_name == p_users[i].Trim())
                    {
                        int p_judge = 1;
                        Response.Redirect("Default.aspx?value="+p_judge);
                    }
                }
                if (p_num == 0)
                    Application["user"] = p_name.ToString();
                else
                    Application["user"] = Application["user"] + "," + p_name.ToString();
                p_num += 1;
                Application["userNum"] = p_num;
                Session["userName"] = TextBox1.Text.Trim();
                Application.UnLock();
                Response.Redirect("Default2.aspx");
            }
        }

    4.default2.aspx 采用 frame 的SRC 属性来显示default3 default4

     protected void Page_Load(object sender, EventArgs e)
        {
            Label1.Text = Session["userName"].ToString();

        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            int p_current = int.Parse(Application["current"].ToString());
            Application.Lock();
            if (p_current == 0 || p_current > 20)
            {
                p_current = 0;
                Application["chats"] = Session["userName"].ToString() + "说:" + TextBox1.Text.Trim() + "(" + DateTime.Now.ToString() + ")";

            }
            else
            {
                Application["chats"] = Application["chats"].ToString() + "," + Session["userName"].ToString() + "说:" + TextBox1.Text.Trim() + "(" + DateTime.Now.ToString() + ")";
            }
            p_current += 1;
            Application["current"] = p_current;
            Application.UnLock();

        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Write("<script>window.close()</script>");
        }

    5.default3.aspx

    protected void Page_Load(object sender, EventArgs e)
        {
            ArrayList ItemList = new ArrayList();
            Application.Lock();
            string p_names;
            string[] p_user;
            int p_num = int.Parse(Application["userNum"].ToString());
            p_names = Application["user"].ToString();
            p_user = p_names.Split(',');
            for (int i = (p_num - 1); i >= 0; i--)
            {
                ItemList.Add(p_user[i].ToString());
            }
            ListBox1.DataSource = ItemList;
            ListBox1.DataBind();
            Application.UnLock();
        }

    6.defaut4.aspx

     protected void Page_Load(object sender, EventArgs e)
        {
            int p_current = int.Parse(Application["current"].ToString());
            Application.Lock();
            string p_chats = Application["chats"].ToString();
            string[] p_chat = p_chats.Split(',');
            for (int i = p_chat.Length - 1; i >= 0; i--)
            {
                if (p_current == 0)
                {
                    TextBox1.Text = p_chat[i].ToString();
                }
                else
                {
                    TextBox1.Text = TextBox1.Text + "/n" + p_chat[i].ToString();

                }
            }
            Application.UnLock();
        }

  • 相关阅读:
    找到了2年前的一个微博小号
    Float Equal Problem
    有用的护肤品贴
    最近状态总结
    [Coursera]Machine Learning
    KMP算法(转载)
    [Leetcode] Median of Two Sorted Arrays
    [Algorithms(Princeton)] Week1
    [Algorithms(Princeton)] Week1
    [Leetcode] Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/jiangnini/p/3437383.html
Copyright © 2020-2023  润新知