1、局域网聊天软件设计与实现局域网聊天软件设计与实现姓名姓名:王宇王宇班级班级:软件软件10261026指导老师指导老师:邵永波邵永波选题目的与意义选题目的与意义 全球信息化的不断推进,网络得到前所未有的普及与全球信息化的不断推进,网络得到前所未有的普及与发展,给人们的生活带来了很大的方便。各种基于网络的发展,给人们的生活带来了很大的方便。各种基于网络的应用层出不穷,让各个年龄和阶层的用户充分体会到了各应用层出不穷,让各个年龄和阶层的用户充分体会到了各种的个性化服务,人们的生活已经与网络紧密的结合在一种的个性化服务,人们的生活已经与网络紧密的结合在一起。为了让企业在发展迅猛的信息时代生存下去,并增
2、强起。为了让企业在发展迅猛的信息时代生存下去,并增强企业的竞争力,就要求有一个良好的平台让企业员工之间企业的竞争力,就要求有一个良好的平台让企业员工之间进行快速的交流与通信。由于企业规模的不断扩大,企业进行快速的交流与通信。由于企业规模的不断扩大,企业的各种信息也越来越私密,企业只希望员工通过内部网络的各种信息也越来越私密,企业只希望员工通过内部网络进行交流与沟通,最大限度地避免机密信息通过网络被泄进行交流与沟通,最大限度地避免机密信息通过网络被泄漏,从而提出了局域网聊天软件的构想。漏,从而提出了局域网聊天软件的构想。主要内容主要内容 通过局域网聊天系统这个平台,可以实现实时聊通过局域网聊天系
3、统这个平台,可以实现实时聊天、聊天内容对外部保密,使员工之间的交流快速安天、聊天内容对外部保密,使员工之间的交流快速安全的进行。系统的主要功能有:用户注册、用户登录、全的进行。系统的主要功能有:用户注册、用户登录、自动更新在线用户列表、群聊模块、私聊模块等。自动更新在线用户列表、群聊模块、私聊模块等。系统前台利用系统前台利用QT平台开发,后台使用平台开发,后台使用MYSQL作为数据库管理系统,是一个基于作为数据库管理系统,是一个基于C/S架构的局域网架构的局域网聊天系统。聊天系统。LinuxLinux系统下的网络编程技术系统下的网络编程技术服务器端:服务器端:1)创建一个)创建一个socket
4、;socket;2)将该)将该socketsocket与本地地址与本地地址/端口号绑定;端口号绑定;3)在监听端口上监听客户机的连接请求;)在监听端口上监听客户机的连接请求;4)当)当acceptaccept捕捉到一个连接请求时,就建立连接线路并返捕捉到一个连接请求时,就建立连接线路并返回一个新的通信文件描述符;回一个新的通信文件描述符;5)父进程创建一个子进程,并继续监听端口上其他客户机父进程创建一个子进程,并继续监听端口上其他客户机的连接请求;的连接请求;6)子进程通过通信文件描述符与客户机进行通信,通信结)子进程通过通信文件描述符与客户机进行通信,通信结束后终止子进程关闭通信文件描述符。
5、束后终止子进程关闭通信文件描述符。LinuxLinux系统下的网络编程技术系统下的网络编程技术客户机端:客户机端:1)创建一个)创建一个socket;socket;2)向指定的服务器主机及端口发出连接请求,请求成功将)向指定的服务器主机及端口发出连接请求,请求成功将返回通信文件描述符;返回通信文件描述符;3)调用)调用connect函数与服务器建立连接;函数与服务器建立连接;4)连接成功之后与服务器进行通信;)连接成功之后与服务器进行通信;5)通信完毕后关闭通信文件描述符;通信完毕后关闭通信文件描述符;服务器端功能服务器端功能u 客户端注册时通过数据库验证用户的注册信息,并把注客户端注册时通过
6、数据库验证用户的注册信息,并把注册结果返回给客户端。册结果返回给客户端。u 客户端登陆时通过数据库验证用户的登陆信息,登陆成客户端登陆时通过数据库验证用户的登陆信息,登陆成功后,把此用户的登录消息通知其他好友。功后,把此用户的登录消息通知其他好友。u 登陆成功时,向新连接的用户发送已上线的用户名单。登陆成功时,向新连接的用户发送已上线的用户名单。u 接收客户端的群聊消息请求,解析后把消息发送到所有接收客户端的群聊消息请求,解析后把消息发送到所有已登录的客户端。已登录的客户端。u 接受客户端的私聊消息请求,并解析后把消息发送到指接受客户端的私聊消息请求,并解析后把消息发送到指定的客户端。定的客户
7、端。u 用户与服务器断开连接时,把该用户退出的消息通知其用户与服务器断开连接时,把该用户退出的消息通知其他用户。他用户。客户端功能客户端功能u 在登陆界面,把登录信息正确的发送到服务器。在登陆界面,把登录信息正确的发送到服务器。u 处理服务器反馈的登结果信息。处理服务器反馈的登结果信息。u 在注册界面,把注册信息正确的发送到服务器。在注册界面,把注册信息正确的发送到服务器。u 处理服务器反馈的注册结果信息。处理服务器反馈的注册结果信息。u 登录以后,能够自动的更新用户列表。登录以后,能够自动的更新用户列表。u 发送群聊消息到服务器。发送群聊消息到服务器。u 把服务器反馈的群聊消息显示到群聊界面。把服务器反馈的群聊消息显示到群聊界面。u 发送私聊消息到服务器。发送私聊消息到服务器。u 把服务器反馈的私聊消息显示到指定的聊天窗口。把服务器反馈的私聊消息显示到指定的聊天窗口。u 客户端退出时,把该用户的退出消息发送到服务器,并客户端退出时,把该用户的退出消息发送到服务器,并关闭所有聊天窗口。关闭所有聊天窗口。客户端模块客户端模块服务器端模块服务器端模块登陆界面登陆界面注册界面注册界面主界面主界面私聊窗口私聊窗口