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();
    }

(ASP.net)利用Application对象制作简单聊天室的更多相关文章

  1. java web利用mvc结构实现简单聊天室功能

    简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是:         1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进 ...

  2. Java利用TCP编程实现简单聊天室

    前言: 本文是我在学习尚学堂JAVA300集第二季网络编程部分仿照视频内容实现而成 具体可以去尚学堂官网观看视频学习 一.实现思路 实现聊天室的最核心部分就是JAVA的TCP网络编程. TCP 传输控 ...

  3. Java continue break 制作简单聊天室程序,屏蔽不文明语言,显示每句话聊天时间 for(;;) SimpleDateFormat("yyyy-MM-dd hh:mm:ss") equalsIgnoreCase

    package com.swift; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanne ...

  4. ASP.NET 使用application和session对象写的简单聊天室程序

    ASP.Net中有两个重要的对象,一个是application对象,一个是session对象. Application:记录应用程序参数的对象,该对象用于共享应用程序级信息. Session:记录浏览 ...

  5. ASP.NET中application对象的用法(面试题)

    ASP.NET中application对象的用法 本文导读:Application对象是HttpApplicationState类的一个实例,Application状态是整个应用程序全局的.Appli ...

  6. ASP.NET中application对象

    ASP.NET中application对象的使用. Application对象的应用  1.使用Application对象保存信息  (1).使用Application对象保存信息  Applicat ...

  7. Android 利用Application对象存取公共数据

    本文章来给大家介绍Android 利用Application对象存取公共数据. Android系统在运行每一个程序应用的时候,都会创建一个Application对象,用于存储与整个应用相关的公共变量. ...

  8. Asp.Net SignalR - 简单聊天室实现

    简单聊天室 使用持久链接类我们就可以做一些即时通讯的应用了,我使用Group做了一个简单的聊天室,先上图技术细节下面再讲 可以加入聊天室.创建聊天室.发送消息,下面就说说我是如何通过Group做出来的 ...

  9. ASP.NET SingalR + MongoDB 实现简单聊天室(一):搭建基本框架

    ASP.NET SingalR不多介绍.让我介绍不如看官网,我这里就是直接上源代码,当然代码还是写的比较简单的,考虑的也少,希望各位技友多多提意见. 先简单介绍聊天室功能: 用户加入聊天室,自动给用户 ...

随机推荐

  1. 【原创】lua编译时发现缺少readline库

    编译lualua项目,其中用到了lua-5.1版本的源码,编译时提示缺少readline库,找不到readline/readline.h头文件等 发现系统中其实有安装readline库不过没有做链接和 ...

  2. Java修饰符关键词大全

    所以我以此主题写了这篇文章.这也是一个可用于测试你的计算机科学知识的面试问题. Java修饰符是你添加到变量.类和方法以改变其含义的关键词.它们可分为两组: 访问控制修饰符 非访问修饰符 让我们先来看 ...

  3. Hibernate的BaseDao辅助类

    1.BaseDao接口类,该类封装了一些hibernate操作数据库的一些常用的方法,包括分页查询,使用该类极大的简化了hibernate的开发 BaseDao.java package com.kj ...

  4. Fox-H 函数

    1.定义 2.特例 3.在分数阶微分方程中的应用 4.如何画图

  5. Atom远程连接服务器报错服务器版本和客户端版本不一致

    Atom远程连接服务器 报错信息: Server version is different than client version Original error message: Version mi ...

  6. Asp.Net事务和异常处理:

    Asp.Net事务和异常处理: 一.什么是事务处理? 事务处理是一组组和成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性. 如果在事务过程中没有遇到错误, ...

  7. php join函数使用,很是方便

    以前数组转换成用逗号隔开的字符串都是自己写一个数组,最后还要去除多余的一个逗号,好麻烦. 无意中发现join函数,原来一句话就可以了. $_array = array('a','b','c','d', ...

  8. 笔记本禁用自带键盘攻略-------针对shift默认按下的解决方案

    长期以来楼主一直被一个问题困扰,就是win8进入界面,输密码时开大写其实是小写,开小写是大写.进入系统以后shift键是默认按下的.一直以为是电脑中毒了.上网查了一些东西,发现可能是因为键盘硬件方面的 ...

  9. Retina屏下1px border

    layout tltle tags post ios7下移动web开发的几个坑 webapp 1.Retina屏下1px border 由于高清屏的特性,1px是由2×2个像素点来渲染,那么我们样式上 ...

  10. C#_Queue实例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Queu ...