网络聊天室的设计与实现+多线程Thread(4)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

网络聊天室的设计与实现+多线程Thread(4)


4.3  发言对象的设置
用户发言前可以从在线用户列表中选择某个对象后,再进行发言,将来richTextBox中显示的发言内容是专门指向用户选择的对象。
当用户自定义了发言文字的颜色、发言的对象并输入了发言内容后,用户就可以点击[发送]按钮将发言的内容以记录的形式提交到服务器。
其中需要值得注意的是聊天用户客户端IP地址的获得方法,用Dns类的GetHostName()获取本地计算机的主机名。GetHostAddresses(主机名)方法获得。
4.4  显示发言信息模块设计
在客户端运行时,屏幕显示出聊天室的用户登陆界面。用户输入用户名及密码正确登陆后即可进行聊天,按[发送]按钮时,用户的发言便会将用户的发言文字的颜色字体、发言的对象以及发言的内容一起写入聊天表中。
接下来,用户设计所关心的就是怎样将发言的信息显示在richTextBox中。
需要注意的是,发言之后,用户可以实现发言的内容并不是立即出现在屏幕上的,而是在很短暂的是延迟后才能看到发言的内容。那是因为发言程序本身负责的纯粹是把数据写入数据库,而不会向客户端返回任何东西。
4.5  实现聊天信息显示的关键技术
4.5.1  记录的显示顺序
程序将发言信息写入数据库的时候,记录是不断往数据表的尾部增加的。因此,用户必须知道哪一句话是最新的,哪一句话是在前面说的。在聊天表中,有一个聊天时间,这个字段非常有用。以此来区分消息是刚才发的,还是是现在发的。
4.5.2  设置显示最新记录的范围
由于用户的聊天信息不断的向聊天表追加新的内容,数据库将会变得越来越大。为了获得较快的信息读取和显示 速度,用户不可能也不必要读取全部的聊天信息并将这些信息显示出来,秩序要设计看到最新的N句话,比如最新的50句话就够了。
4.5.3  显示在线用户模块设计
每当一个新的用户进入聊天室后,系统应当将用户显示在在线聊天室名单中,并将当前用户的颜色以不同于其他用户的颜色显示。
在本程序中最为关键的就是怎样实现将当前用户的颜色以不同于其他用户的颜色显示,刚上线用户用红色表示,30s以后把颜色换为绿色。
由于在线用户也需要不断的自动刷新,所以程序中同样也设置了自动刷新的功能。
5.总结
经过了三个多月的学习和工作,我终于完成了网络聊天室的设计与实现。从开始接到论文题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,从对C#、ADO等相关技术懵懂的状态,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。
虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦优尔最终都会化为甜美的甘泉。
这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步 (责任编辑:qin)