当前位置:无忧公文网 >范文大全 > 征文 > 局域网聊天工具的设计与实现

局域网聊天工具的设计与实现

时间:2022-04-04 09:56:01 浏览次数:

【摘要】设计并实现的局域网聊天工具是采用基于局域网的P2P网络模型的通讯方式,不需要专门的服务器,网络中所有的对等点都是服务器,并且承担很小的服务器的功能。各用户可以根据聊天工具运行时收集到的用户列表信息选择聊天对象,大部分的功能都可以在此连接上实现,同时可以实现无限制文件高速传输共享,并确保网络的安全性和保密性,简单、方便且实用性强。

【关键词】局域网聊天工具P2P

1引言

本文设计并实现的局域网聊天工具主要是基于局域网技术的聊天工具,即局域网内用户安装了本聊天工具后,一旦开机上线,本机即向本局域网广播该用户的登录信息,主要记录用户名、IP地址等信息,并统计在线用户数量。在用户与用户之间发起通信的情况下,首先发起通信用户一选定其他用户二,生成相应线程,同时建立套接字连接,并扫描指定通信端口,发送数据,而同时用户二接收到信息,启用信息提示窗口,查看信息,由于本聊天工具是基于局域网的聊天工具,没有服务器的支持,所以在数据保存时,无法做到服务器的完备,没有设计信息的保存,所有接收到的信息只在查看时显示,关闭窗口后即丢失。在发送文件时,发起用户首先选定接收用户,创建线程,建立套接字连接,接收用户进行链路监听,接收发送文件,建立专用链路,高速传输数据,接收完毕,关闭窗口。用户退出时向全网广播,通知其他主机本用户已下线,其他用户更新用户在线信息。

2系统需求

根据该聊天工具的主要功能以及P2P模式的需求可划分为三个模块:底层消息处理模块、聊天功能模块、文件传输模块。其中底层消息处理模块是整个软件的基础模块,其他两个模块都是在此基础上添加的。

底层消息处理模块主要是处理通讯协议下的各种消息,包括发送消息和接收并处理消息这两个主要的功能。在功能实现上,包括:(1)上线消息处理;(2)在线消息处理;(3)下线消息处理;(4)通话消息处理;(5)文件传输消息处理。

聊天功能模块是本软件主要实现的功能,因此要尽可能做到方便快捷,易于使用。由于没有固定的服务器,所有的消息都是实时的,不能够把消息上传到服务器保存,再等接收者上线后转发出去。由于这种不可避免的缺陷,在功能上也不能够像传统的聊天工具那样,在功能上需做一些改变和配合。在用户数据方面也很容易引起不一致性问题,所以也不能够太过依赖数据。在功能实现上,包括:(1)显示用户列表;(2)信息提示;(3)查看信息;(4)发送信息。

文件传输模块是资源共享的最主要渠道,收发必须是可靠的,并且能够支持快速传输。在功能实现上,包括:(1)添加发送文件;(2)接收文件;(3)发送文件;(4)中止收发文件。

3系统功能流程

对于局域网的整体模型,本课题采用了P2P的连接模型,充分发挥了端对端通讯的优势。在本地主机上保存了局域网其它结点的基本信息,直接通过目录列表与其它主机通讯,这样可以大大减少连接的开销。以需求分析为依据,参照现在比较流行的开发模型的特点,本文把结构模型划分为三层:显示层、控制层以及数据层。显示层主要是用户与软件的交互平台,它实现友好的用户界面,是用户获得和输入信息的渠道。包括:用户显示窗口、聊天对话窗口、文件传输窗口等;控制层是整个软件的灵魂,大部分的底层操作都需要经过调用控制层的方法。包括:初始化原始数据、网络消息的收发、网络消息的处理、基本窗口的管理;数据层是提供了存取、拷贝、查找和序列化等方法的信息结构体,它使得消息数据操作和基本信息数据操作都变得透明化。包括:数据集对象、基本数据信息对象。

用户上下线流程如图1所示。

聊天信息收发流程如图2所示。

文件收发流程如图3所示。

4系统设计与实现

用户界面的美观和方便与否会直接影响到用户使用的积极性,所以本课题在设计界面时,为界面换上了一个免费的皮肤(SkinMajic)来改善界面的外观。用户上线、聊天、传输文件等工作都是通过界面交互完成的,而用户上线后的用户界面是用户操作的主要平台。

客户端登录首先是创建登录线程 BeginLoadThread,然后在自定义的Login()方法中调用sendto()函数向服务器发送登录请求信息,然后服务器对其发送的信息进行验证,如果验证通过则返回争取信息,否则禁止进入操作界面并给出错误提示。用户退出时,在Logout()中调用sendto()函数向服务器发送退出的请求,服务器得到请求信息后给出处理并更新在线信息。登录界面如图4所示。

聊天基于UDP协议,通信双方无需建立连接就可以通信,每一个客户端既可以是发送者也可以是接受者,每个用户都需要建立一个Socket套接字,然后绑定到本地的某个端口,如此只要发送方向这个端口发送数据,该客户端就可以接收到该数据信息;同时,该客户端只要知道对方IP地址和端口信息就可以向对方发送信息了。

5小结

本文是基于P2P技术的局域网聊天工具,它的主要作用是实现同在一个局域网上的每个用户之间进行即时通讯,该聊天工具具有简易文字聊天、文件传输等功能。它采用了基于UDP网络的传输协议进行底层的消息传送,在此基础上用广播消息实现上下线提示用户数量统计和聊天功能,点对点的消息实现两人之间的聊天通讯、收发消息的功能。同时该聊天工具也采用了TCP网络的传输协议进行文件传输,该功能可以同时收发多个文件,但属于异步传输,不支持断点续传。但其发送速率快,且不受服务器限制无障碍发送,使得无论文件大小,均可实现快速传送。这对于文件共享起到很好作用。

参考文献:

[1]黄强.WINDOWS网络编程[M].人民邮电出版社,2003.

[2]W.Richard Stevens著.范建华译.TCP/IP详解.机械工业出版社,2000.

[3]Andrew S.Tanenbaum,Vrije Universiteit,Amsterdam,The Netherlands著.潘爱民译.计算机网络(第4版).清华大学出版社,2004.

[4]Stanley B. Lippman, Josée Lajoie, Barbara E. Moo.C++ Primer4rd.人民邮电出版社.

[5]Dov Bulka, David Mavhew著.Efficient C++(Seconde Edition).人民邮电出版社, 1999.

[6][美]Anthony Jones,Jim Ohlund著.杨合庆译.Windows网络编程(第2版)[M].清华大学出版社, 2002.

推荐访问: 局域网 聊天工具 设计