教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

基于Linux点对点聊天文件传输系统(7)

来源:网络收集 时间:2026-07-17
导读: 线程处理模块是在主界面显示后,进入gtk_main()等待事件、信号的触发。服务器端在初始化创建Socket对象成功后,创建一个线程用于监听连接请求,当服务器端与客户端连接成功后再创建一个线程用于接收信息。 任何进程

线程处理模块是在主界面显示后,进入gtk_main()等待事件、信号的触发。服务器端在初始化创建Socket对象成功后,创建一个线程用于监听连接请求,当服务器端与客户端连接成功后再创建一个线程用于接收信息。

任何进程在启动时就已有了一个主线程,需要再生成线程则使用g_thread_create()函数,在该函数中可以指定线程的属性、线程例程、传给线程例程的参数。线程例程是一个用户自定义函数,即线程执行的代码。当线程例程开始时,必须获得一个唯一的全局锁,可通过函数gdk_threads_enter()来获得, 当线程例程返回时,必须释放该全局锁,可通过函数gdk_threads_leave()来释放。

3.6 结束模块

通过点击图形界面上的退出按钮退出程序。在执行退出按钮的回调函数时,

18

内蒙古工业大学毕业设计说明书

首先要判断连接是否成功过,如果没有连接则直接关闭Socket对象,调用gtk_main_quit()退出程序销毁界面。如果服务器端与客户端处于连接状态则要判断是服务器端还是客户端。

服务器结束要将服务器退出信息发送给客户端,关闭用于监听和用于连接客户端的两个Socket,然后退出程序。

客户端结束要将客户端退出信息发送给服务器,关闭与服务器连接的Socket释放占有的系统资源,退出程序销毁界面。

结束模块程序流程如图3-8所示。

图3-8 结束模块流程图

结束服务器端向客户端发送服务器关闭信息客户端向服务器端发送客户端关闭信息是结束模块否是否处于连接状态是是否运行服务器端否关闭Socket对象关闭Socket对象19

内蒙古工业大学毕业设计说明书

结 论

本系统是在Linux操作系统下,使用C语言进行开发的一款点对点聊天软件。综合其他聊天软件的优缺点本系统实现了基本的聊天和传送文件的功能。在设计过程中界面设计使用了GTK+库和Glade图形界面生成工具。Socket套接字用来创建连接,实现通信双方正常连接。综合比较TCP和UDP后,选用更安全的面向连接的TCP传输控制协议。在解决I/O阻塞问题时,选择了占用系统资源较少的线程。本系统最终可以实现点对点的字符串发送和接收,能够实现简单的聊天功能。

系统能能够完成一定的功能,但还有很多不完善的地方。由于技术的缺乏和时间的限制本系统在实现功能时存在一些问题,例如系统在信息传输过程中,没有对传输的消息和文件进行加密操作,因为这在网络中传输中是很不安全的。

本系统在实现基本功能的基础上还需要完善一些不足的地方。系统需要添加消息加密和解密模块,来保证传输信息的安全性。图形界面是由图形工具glade生成,虽然使用glade能够很容易搭建起一个图形界面,但是用glade缺点在于生成的界面有点生硬不够美观,需要改进。以上这些问题都要在以后的工作中逐步解决。

毕业设计让我学到的不止是专业知识,更学到了那种精益求精、严谨的治学精神,这些都使我受益终生的财富。我要在以后的工作生活中保持和发扬这种精神。

20

基于Linux点对点聊天文件传输系统(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/615650.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)