当前位置:首页 > 局域网聊天软件的设计与实现毕业论文
局域网聊天软件的设计与实现
等,同一个进程中的多个线程共享该进程的虚拟空间。
(3)如何创建并销毁一个线程
在创建一个线程时,必须提前定义一个函数,这个函数并不是随便定义的,他必须是按照线程函数原型的函数,为了让系统知道从哪里开始运行线程,必须将它的地址传送给所创建线程的函数。若创建成功,该函数会返回一个Handle,这个句柄表示了刚创建的线程内核对象,当线程创建成功后,必须调用CloseHandle函数将其关闭,若不关闭该内核句柄,当线程退出后,操作系统并没有销毁线程,会造成资源的浪费,这是因为获取一个实内核句柄就会增加内核使用的计数,只有当该内核对象的使用计数为0时,才会真正的销毁该内核对象,线程也是如此。
本论文使用多线程编程有以下理由:
(1)相对于进程而言,多任务操作是一种相当节俭的方式。一个新线程的启动,会占据系统空间,系统会建立众多的数据表,来维护它的代码段、堆栈段和数据段,这种工作方式相当的昂贵。因为多个线程使用相同的地址空间,无论是启动花费的时间,还是彼此切换所需的时间,线程总是比进程小得多 [13]。
(2)线程之间简便的通信机制。当不同的进程之间相互传递数据时,他们只能通过通信的方式,而且各自具有独立的数据空间,这种方式不仅费时,而且又非常的不方便。线程却不是这样,在一个进程里的线程之间,数据是可以共享的,任意一个线程的数据可以被任何同一进程里的其他线程所用,当然,共享时也会出现变量不能被两个线程同时修改的问题,特别是当子程序有的数据被声明为静态时,这种状况下,会给多线程程序带来不可恢复的打击,这些在编写多线程时,应该特别的注意。
在不与进程比较的情况下,多线程程序作为一种多任务、并发的工作方式,还有以下的优点:
(1)提高应用程序的响应。当用户打一个软件时,如果这个软件耗时时间过
11
局域网聊天软件的设计与实现
长,键盘、鼠标和菜单都不会响应该操作,但是使用多线程技术时就大不同了,它会将耗时时间长的操作置于一个新的线程,不会影响其他的操作,避免了上述情况的发生,充分体现了多线程技术的优点。
(2)使多CPU系统更加有效。大部分操作系统会有下列行为,当线程数小于CPU数目时,保证不同的线程运行在不同的CPU上。
(3)改善程序结构。可以将一个很长且复杂的进程,分为多个独立运行的线程,这样对于程序的理解和修改意义重大。
2.2.5 文本文件的传输
Linux的文本文件传输系统,主要是基于TCP/IP协议的,主要实现模块是服务器和客户端,这两个模块的基本功能是一样的,除此之外,还有值得称赞的功能,就是支持断点续传的功能,还可以用函数实现对数据的加密处理,以便数据可靠地传输。
可以说,在Linux操作系统中,文件代表了一切,所以文件函数可以对其他设备进行任意的操作,这些文件函数有读与非读函数。用户可以用fseek(SEEK_END)函数来实现文件值的大小,还有重要的函数如fopen()、fread()、fwrite() 、fclose(),这些函数都是标C文件读写函数。还有重要的文件读写函数,open()、 read() 、write()、 close() 、ioctl(),它们都是必不可少的系统函数。还有一点值得注意的是,文件是通过管道传输来实现文件的传输的。
应用Symlink函数可以创建软链接文件,而open函数无法直接读取软件链接文件,readlink函数却可以直接读取,并不要求目标文件已经存在,也并不需要位于同一个文件系统中。
2.3 系统设计框架
整个应用程序要实现聊天及文本文件传输的功能,主要由三大块组成:
12
局域网聊天软件的设计与实现
(1)人机交互界面:用于显示客户服务器连接的状态、是否实现消息的输入、消息的正确传送等功能;
(2)消息传输模块:用于实现消息传输协议的封装与解包工作,实现消息传输控制;
(3)文本传输模块:用于实现文本文件的传输的封装还有解包工作,实现文件头及文件的发送、接收控制[14]。
13
局域网聊天软件的设计与实现
3软件需求分析及可行性研究
3.1需求分析
3.1.1时间要求
本项目作为大学本科毕业设计题目,从接受选题开始,在大四下学期的第一、二周要完成资料的准备工作;第三、四周完成开题报告、文献综述,并经指导教师审批;第四到七周完成毕业设计大纲和各个部分的主要内容;第八周完成并将毕业设计学生自查表交系里;第九到十三周全面完成系统和论文;第十四周交设计并请指导教师评审,评阅人评审,准备答辩。
3.1.2 功能需求分析
本论文的设计要实现的功能是:服务器的程序要先于客户端的程序启动,就像登录QQ聊天一样,只有系统先连接上宽带,用户才能登录聊天。程序启动之后要能够知道局域网内哪些用户在线,并可以随时与任意一个客户端进行通信;
下面,我们就局域网聊天的一般过做一个简单的介绍。在我们局域网聊天用户使用者进行局域网聊天时,首先,我们要选择局域网聊天界面进行上线登陆,登陆之后,相对应的服务器会马上更新信息,如果你允许别人知道你上线的话,服务器还会同时告知其他正在使用该软件的用户你已上线。接下来,如果你想和其他人进行聊天的话,你可以双击用户列表中的相对应的消息框窗口,弹出消息框就可以给他人编辑消息发送了,与此同时,在对方那里会弹出你所发的消息框,并在相应的界面处显示你的消息,整个聊天局域网的的主要过程就是这样。我们都知道,当我们在使用一个软件时,通常情况下,我们是需要进行一个基本信息注册的。比如用户名、密码、邮箱等等这些信息。事实上当我们在对这些信息进行注册时,局域网服务器也在后台进行相应的用户信息保存操作。总之,前台客户端的操作是和后台服务器的运行是同时进行的,二者是一体化的。在局域网聊天过程中,我们需要注
14
共分享92篇相关文档