宝哥软件园

chat.asp聊天程序的写作方法

编辑:宝哥软件园 来源:互联网 时间:2021-09-30

可能朋友们在一些杂志上看到过asp聊天程序的编写方法,但是作者在这里写了一个比较简单的程序,只用了一个。ASP文件。请将以下代码剪切并粘贴到笔记本中,并将其保存为chat.asp。

“% @”语言=VBscript % % response . buffer=true“设置显示不同页面的输出缓冲区。“出错时继续下一步”忽略程序ifrequest . server variables(“request _ method”)的错误部分。='GET '然后'判断客户以何种方式请求网页'-Ame=' nick ' size=' 20 ' value=' nick ' style=' background-color : RGB(192,192,192)' br input type=' submit ' value=' enter chat room ' name=' B1 ' style=' color 3360 RGB(255。font-size : 9 pt;background-color: rgb(0,128,128)' p输入类型='hidden '名称='log '大小='20 '值='1' br /p /表单%Response。End '结束程序ElseResponse.clear '清空缓存dim talkifrequest.form ('nick ')中的内容然后'判断客户是否在聊天界面会话(' nick')=request.form ('nick ')。End'-%formmethod=' post' action=。% speak:input type=' text ' name=' talk ' size=' 50 ' br input type=' submit ' value=' submit ' name=' B1 ' input type=' reset ' value=' cancel ' name=' B2 '/p/A href='/asptest/Shusheng/chat . ASP ' leave/A br % ifrequest . form(' log ')1 teniftrem(request . form(' talk '))='然后'判断用户是否输入了任何内容talk=Session('nick ')沉默是金Else talk=trim(请求form ('talk ')'如果应用程序结束,请删除字符后的空格。lockapplication ('show ')。=' table border=' 0 ' cell padding=' 0 ' cell spacing=' 0 ' width=' 85% ' tr TD width=' 100% ' bgcolor=' c0 c0 'TD/trtr TD width=' 100% ' font color=' 0000 ff ' Session(' nick ')time ' from ' request。服务器变量(' remote _ addr ')表示:/font ' talk ' TD宽度=' 100%' bgcolor=' # c0c0c0' 结束

让我们一步一步来分析这个聊天室程序。首先,由于聊天室中的所有客户都应该能够共享信息,因此不可避免地要使用带有应用级变量的对象Application,这是建立聊天程序的关键。所有对话数据都存储在一个应用程序级变量中,供所有客户读取。我们可以使用学习到的请求对象获取客户输入的对话并保存在变量talk中,然后将talk的值保存在应用层变量show中,如下图:所示。

% Application(' show ')=talk Application(' show ')%

接下来,我们应该考虑当不同的客户同时操作聊天应用程序时,如何处理他们。事实上,这个问题与两个用户同时在数据库中写入相同的记录是一样的。如果两个用户同时编写同一个应用程序级变量,一个用户所做的修改将被另一个用户的操作覆盖。因此,如果对应用对象数据的并发访问不采取措施,当两个用户试图同时提交Asp聊天室应用时,一个用户提交的内容将被另一个用户提交的内容覆盖。为了避免这种问题,我们需要使用application对象的Lock属性来限制只允许当前用户编辑或添加Application对象的属性,这样当用户开始修改Application级别的变量时,直到Application对象被显式解锁,Application对象的属性只能由该用户编辑。如果其他用户此时请求编辑应用程序对象,这些用户将不得不排队等待,直到应用程序解锁。如下图,应用。lock application(' show ')=talk application(' show ')应用程序。解锁现在你已经知道了整个程序的核心部分,考虑如何保存客户信息。这里,我们将使用会话级变量,即在会话中保存客户的nick。比如:

session(' nick ')=request . form(' nick ')最后,我们应该考虑如何只在一个中处理各种事件。asp文件,如:客户登录界面和客户聊天界面。当客户第一次请求。asp文件,它采用了简单的HTTP GET方法,但是当客户向页面上的表单字段添加数据并将表单提交给自己时,该。asp文件将被再次请求,但这一次数据是通过HTTP POST传输的。请求文件的方式可以通过两种方式来确定。首先,测试请求是否。表单集合包含成员。如果没有,则表示没有数据发送到表单进行处理。其次,使用request . server variables(' request _ method ')变量。如果表单是由HTTP GET请求的,那么如果表单被提交处理,这个变量将返回“GET”和“POST”。由于后一种方法更直接用于确定文件请求模式,我们使用下面的代码来判断: ifrequest。server variables(' request _ method ')=' GET '然后因为我们设置了ASP缓存,当程序判断页面请求模式是GET时,运行Response。结束以完成所有后续操作,否则,运行响应。清除以清除缓存中的现有内容并继续程序。这样,我们就可以用同样的。asp文件,根据不同的情况向客户展示不同的界面。好了,我已经告诉你这个ASP聊天程序的核心部分了。请自己阅读该程序,了解其余细节。其实这个节目还是有很多缺点的。最大的问题是我没有写自动刷新的功能,所以如果你不在Chat里面说话,就看不到其他客户说了什么。

大家都知道网络聊天的魅力。其实ASP也可以实现类似irc的强大功能。当然需要多写代码。如果你感兴趣,你可以学得更深,和每个人交流经验。

更多资讯
游戏推荐
更多+