1引言
伴随着各种各样的聊天软件的产生,人们越来越依赖聊天软件。但是目前的聊天软件还存在一些局限性。现在我们使用的聊天软件都只适用于Windows操作系统[1,2],而并不适用于Linux操作,这对使用Linux操作系统的用户造成了极大的不便。由于Linux操作系统的开源性,Linux越来越受用户和商家的喜爱[3]。所以,将Linux操作系统和通讯软件结合起来不仅加速了Linux的普及,也丰富了Linux下的应用软件。
2需求分析
Linux下的聊天室需满足人们日常生活中基本交流的要求。对于用户来说,可以注册账号,登录系统,修改密码,查看聊天记录,为用户显示当前的在线人数,以及与某一特定的用户进行私聊,或者与众多用户进行聊,同时满足用户与用户之间传输文件的要求。对于管理员来说,可以管理所有的用户,实现对某一用户进行踢下线的功能,并且同时可以拥有普通用户的所有权限。
3系统设计与实现
3.1系统功能设计
本聊天室服务的用户主要有两类:普通注册用户和管理员。
3.1.1用户功能
普通用户首先需要在系统中注册,创建自己的用户名和登录密码,登录后才能使用本系统的其他功能,例如,修改密码,与某一用户进行私聊,与所有用户进行聊,传输文件,或者查看当前的在线人数。根据系统需求分析,系统功能结构图如图1所示。
图1用户功能模块图
3.1.2管理员功能
管理员主要负责管理普通用户的信息和用户操作。管理员具有以下功能:(1)登录:管理员在对用户进行管理之前,必须先要登录系统,在登录界面输入管理员账号和密码,成功后就可以对用户进行操作了;
(2)聊天;
(3)传输文件:管理员对文件传输进行管理;
(4)创建分组:管理员可以对用户创建不同的分组;
(5)踢下线:管理员对于不遵守聊天秩序的用户,有权将该用户踢线下。
3.2系统功能实现
系统实现主要从聊天室管理模块以及基础功能两个模块进行详细设计与实现。
基于Linux的聊天室的设计与实现
聂维刘小豫
linux在线编程(咸阳师范学院计算机学院,陕西咸阳712000)
[摘要]本聊天室基于C/S架构,以GTK+作为前端页面实现技术,以Socket网络编程技术对通讯方式进行逻辑处理,使用C语言编码开发,Makefile进行编译。实现了注册、登录、私聊、聊、显示在线人数、查看聊天记录、传输文件以及用户下线等功能。
[关键词]Linux;C/S架构;Socket
中图分类号:TP311.52文献标识码:A文章编号:1008-6609(2018)09-0027-
02
——————————————
作者简介:聂维(1977-),女,陕西礼泉人,硕士,讲师,研究领域为网络安全、信息系统开发。
基金项目:咸阳师范学院科研基金资助项目,项目编号:XSYK18010,15XSYK045。
-
-
27
3.2.1聊天室管理模块
聊天室管理模块是由管理员进行操作的,管理员登录系统之后,可以创建聊天室分组,并且对不遵守
聊天室规则的用户进行踢下线操作。
(1)创建聊天室分组操作:用户在首页点击聊按钮后,调用public.c中的showtalk_p()函数,调用private_t_p()函数创建出聊界面,在聊界面中的join框中输入聊天室名字,将输入的信息传入到start_talk_p()中,在该函数中向服务器端发送消息。服务器端接收消息后,进入work.c文件work()函数中,根据不同的消息类型处理信息,并调用join_room()函数,将聊天室信息传入join_room()函数中,在该函数中调用数据库插入函数join_record()向数据库中的聊天室信息表中插入聊天室信息,聊天室创建完成。
(2)管理员踢下线操作:首先在客户端首页点击下线按钮,该按钮会调用root_show()函数,在root_show函数中调用创建踢下线的界面函数root_show_p(),在此界面中输入要踢下线的用户名,并将该用户名传入该函数中,然后点击下线按钮,并调用kill_people()函数,在kill_people函数中向服务器端发送下线消息。服务器端接收到消息后,在work.c文件中根据消息类型downline调用相应的函数talk_kill_people()关闭该用户与服务器的连接。
3.2.2基础功能模块
基础功能模块是针对普通用户进行操作的,用户登录系统后,进入首页,可以执行聊,传输文件,私聊,查看聊天记录和传输文件等功能。
(1)私聊操作:用户在登录系统后,首页会出现private私聊的按钮,点击该按钮,会调用showtalk_p()函数,在showtalk_p()中调用showtalk()函数,就可以进入到私聊界面中,并在该页面中输入私聊用户名。并点击start按钮,在input框中输入要发送的私聊信息,点击goon按钮,调用send()函数向服务器发送消息。服务器接收到消息后进入work.c文件中,服务器根据消息类型选择私聊处理函数showtalk_p(),在该函数中会调用send()函数向私聊用户发送私聊信息,同时将聊天信息存放到数据库中的消息表中。
(2)传输文件操作:点击文件传输按钮,进入ftp.c中的on_button_c()函数,该函数弹出选择文件的窗口,内部调用on_file_select_ok()函数选择文件,temp_file()函数中调用send_file()函数发送文件。接收方点击recv按钮,接收文件。4结论
在调查了Linux操作系统的现状的基础上,完成了基于Linux下的聊天室的设计与实现。该聊天室主要实现了注册、登录、私聊、聊、显示在线人数、查看聊天记录、传输文件以及用户踢下线的功能。该系统基本能够满足Linux用户的聊天需求。
参考文献:
[1]赵德志.Linux操作系统实时性研究与应用[D].南京:南京航空航天大学,2015.
[2]王恒,张宇.基于Linux的聊天室设计[J].江苏科技信息,2015(30):58-60.
[3]陈特放,黎丹.Linux下用GTK+和MySQL开发基于TCP/IP的网络聊天室[J].长沙大学学报,2016(05):54-58.
Design and Implementation of Chat Room Based on Linux
NEI Wei LIU Xiao-yu
(Xianyang Normal University,Xianyang712000,Shannxi)
【Abstract】This chat room is based on C/S architecture.GTK+is used as the front page implementation technology.Socket net-work programming technology is used to process the communication mode logically.It develops with C language and compiles with Makefile.The chat room realizes the functions of registration,login,private chat,group chat,displaying the number of people on-line,viewing chat records,transferring files and kicking user offline.
【Keywords】Linux;C/S architecture;Socket
-
-
28
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论