基于Linux点对点聊天文件传输系统(7)
线程处理模块是在主界面显示后,进入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
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




