您的当前位置:首页正文

asp net制作聊天室

2024-07-04 来源:步旅网
制作聊天室执行程序,首先应该登录聊天室,在“用户名”文本框中输入登录用户的名称,再单击“登录” 按钮进入聊天室。 1、新建一个网站,创建主页Login.aspx

2、在该网站中添加Default.aspx、Content.aspx 和List.aspx3 个Web 页面,其中Default.aspx 页面为聊天室的主页面,Content.aspx 页面用来显示用户的聊天信息,List.aspx 页面用来显示在线用户的列表。 3、在该网站中添加一个Global.asax,用来初始化Application 对象值。

该聊天室是使用Application 对象实现的,在应用程序启动时,应在Application 对象的Application_Start事件中将所有数据初始化。代码如下:

voidApplication_Start(object sender, EventArgs e) {

// 在应用程序启动时运行的代码//建立用户列表 string user = \"\";//用户列表 Application[\"user\"] = user;

Application[\"userNum\"] = 0; string chats = \"\";//聊天记录

Application[\"chats\"] = chats; //当前的聊天记录数

Application[\"current\"] = 0;

}

结束程序时的代码如下:

voidApplication_End(object sender, EventArgs e) {

// 在应用程序关闭时运行的代码 Application[\"user\"] = \"\"; Application[\"chats\"] = \"\"; }

在聊天室主页面中单击“发送”按钮时,首先调用Application 对象的Lock 方法对所有Application 对象进行锁定,然后判断当前聊天信息的记录数是否大于20。如果大于,则清空聊天记录,并重新加载用户的聊天记录;否则,将把聊天内容、用户名和发信息时间保存

在Application 对象中。代码如下:

protectedvoidbtnSend_Click(object sender, EventArgs e) {

intP_int_current = Convert.ToInt32(Application[\"current\"]);

Application.Lock(); if (P_int_current == 0 || P_int_current> 20) {

P_int_current = 0;

Application[\"chats\"] = Session[\"userName\"].ToString() + \"

说:\" +txtMessage.Text.Trim() + \"(\" + DateTime.Now.ToString() + \")\";

} else {

Application[\"chats\"] = Application[\"chats\"].ToString() + \ + Session[\"userName\"].ToString() + \"说:

\" +txtMessage.Text.Trim() + \"(\" + DateTime.Now.ToString() + \")\"; }

P_int_current += 1;

Application[\"current\"] = P_int_current; Application.UnLock();

} 单击“退出”按钮时,代码如下:

protectedvoidbtnExit_Click(object sender, EventArgs e) {

Application.Lock();

stringP_str_userName = Application[\"user\"].ToString(); Application[\"user\"] = P_str_userName.Replace(Session[\"userName\"].To String(), \"\"); Application.UnLock();

Response.Write(\"\") ; }

显示聊天信息页面Content.aspx 加载时,从Application 对象中读取保存的聊天信息,并将其显示在TextBox文本框中,Content.aspx 页面的Page_Load事件代码如下:

protectedvoidPage_Load(object sender, EventArgs e) {

intP_int_current = Convert.ToInt32(Application[\"current\"]); Application.Lock();

stringP_str_chats = Application[\"chats\"].ToString(); string[] P_str_chat = P_str_chats.Split(','); for (inti = P_str_chat.Length - 1; i>= 0; i--) {

if (P_int_current == 0) {

txtContent.Text = P_str_chat[i].ToString(); } else {

txtContent.Text = txtContent.Text + \"\\n\" + P_str_chat[i].ToString(); }

}

}

Application.UnLock();

List.aspx页面显示在线用户的列表,代码如下:

protectedvoidPage_Load(object sender, EventArgs e) {

ArrayListItemList = newArrayList(); Application.Lock(); stringP_str_names; //已在线的用户名string[] P_str_user; //用户在线数组

intP_int_num =Convert.ToInt32(Application[\"userNum\"]);

P_str_names = Application[\"user\"].ToString(); P_str_user = P_str_names.Split(','); for (inti = (P_int_num - 1); i>= 0; i--) {

if(P_str_user[i].ToString ()!=\"\") ItemList.Add(P_str_user[i].ToString()); }

lbList.DataSource =ItemList; lbList.DataBind(); Application.UnLock(); } 登录界面代码如下:

protectedvoidPage_Load(object sender, EventArgs e) {

intP_int_judge = 0;

P_int_judge = Convert.ToInt32(Request[\"value\"]); if (!IsPostBack) {

if (P_int_judge == 1)

Response.Write(\"\"); } }

protectedvoidbtnLogin_Click(object sender, EventArgs e) {

Application.Lock(); intP_int_num; //在线人数stringP_str_name; //登录用户stringP_str_names; //已在线的用户名string[] P_str_user; //用户在线数组

P_int_num = int.Parse(Application[\"userNum\"].ToString()); if (TextBox1.Text == \"\") {

Response.Write(\"\");

{

P_str_name = TextBox1.Text.Trim();

P_str_names = Application[\"user\"].ToString(); P_str_user =

P_str_names.Split(','); for (inti = 0; i<= P_int_num - 1; i++) {

if (P_str_name == P_str_user[i].Trim()) { intP_int_judge = 1;

Response.Redirect(\"Login.aspx?value=\" + P_int_judge);

TextBox1.Focus();

} else

} } if (P_int_num == 0)

Application[\"user\"] = P_str_name.ToString(); else Application[\"user\"] = Application[\"user\"] + \ + P_str_name.ToString(); P_int_num += 1;

Application[\"userNum\"] = P_int_num;

Session[\"userName\"] = TextBox1.Text.Trim(); Application.UnLock();

Response.Redirect(\"Default.aspx\"); } }

protectedvoidbtnExit_Click(object sender, EventArgs e) {

Response.Write(\"\"); } 相关设计界面:

1、Default.aspx 2、Content.aspx

3、List.aspx3 4、Login.aspx

生成结果截图:

因篇幅问题不能全部显示,请点此查看更多更全内容