基于嵌入式linux的QQ聊天系统设计.doc

上传人:知****量 文档编号:91643746 上传时间:2023-05-27 格式:DOC 页数:19 大小:205.50KB
返回 下载 相关 举报
基于嵌入式linux的QQ聊天系统设计.doc_第1页
第1页 / 共19页
基于嵌入式linux的QQ聊天系统设计.doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《基于嵌入式linux的QQ聊天系统设计.doc》由会员分享,可在线阅读,更多相关《基于嵌入式linux的QQ聊天系统设计.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、各专业全套优秀毕业设计图纸武汉理工大学华夏学院专业综合课程设计报告书项 目 名 称基于嵌入式linux的QQ聊天系统设计课程设计总评成绩 学生姓名、学 号 学 生 专 业 班级 自动化1113 指 导 教 师 姓名 课程设计起止日期 2014.12.52014.12.31 课程设计基本要求专业综合课程设计是十分重要的实践教学环节,通过专业综合课程设计,培养学生综合运用所学理论知识和专业技能,以项目为导向解决工程领域的实际问题。课程设计报告是科学论文写作的基础,报告可以以小论文的形式提交。 1. 专业综合课程设计内容包括项目设计方案论证、项目设计与结果分析、答辩等环节,每个环节都应有一定的考核要

2、求和考核成绩。2. 项目设计方案论证主要包括可行性设计方案论证、从可行性方案中确定最佳方案,项目设计要求按选择的方案进行硬件设计或软件编程。4. 项目设计结果分析主要包括项目设计与制作结果的工艺水平,项目测试性能指标的正确性和完整性,软件运行情况和效果分析,故障或错误原因的分析和处理方法。 5. 学生在课程设计过程中应认真阅读与本课程设计项目相关的文献,培养自己的阅读兴趣和习惯,借以启发自己的思维,提高综合分和理解能力。文献阅读摘要记录于课程设计报告书中。6. 答辩是课程设计中十分重要的环节,由课程设计指导教师向答辩学生提出23个问题,通过答辩可进一步了解学生对课程设计中理论知识和实际技能掌握

3、的程度,以及对问题的理解、分析和判断能力。7.学生应在课程设计周内认真参加项目设计的各个环节,按时完成课程设计报告书。课程设计报告书是实践教学水平评估的重要资料,应按课程、班级集成存档交实验室统一管理。课程设计任务书学生姓名: 黄标 专业班级: 自动化113 指导教师: 苏明霞 工作单位:武汉理工大学华夏学院 题 目: 基于嵌入式linux的QQ聊天系统设计 基础条件:1. 软帝嵌入式ARM9开发教学设备;2. PC机及相关应用软件;要求完成的主要任务:1. 了解TCP方面socket编程,linux下QT编程。2. 实现客户端与服务器端的聊天功能。3. 撰写课程设计说明书。4. 课程设计说明

4、书要求:引言、设计要求、系统结构、原理设计、各个模块的设计与实现、软件设计、调试过程、体会及总结、参考文献、源程序。说明书使用A4纸打印或手写。时间安排:第14周 下达课程设计任务书和日程安排,根据任务书查找资料,了解触摸屏工作原理;第15周 熟悉linux的QT下C+程序设计;熟悉linux移植过程。第16周 程序的编写和调试; 第17周 结果分析整理、撰写课程设计报告,验收和答辩。指导教师签名: 2014 年 12 月 5 日系主任(或责任教师)签名: 2014 年 12月 5 日摘 要(摘要200字左右,采用5号字,楷体;摘要要求写“目的、方法、结果、结论”) 本系统建立在嵌入式系统网络

5、平台上,系统的设计上瘾了面向对象技术和面向对象的设计原则。系统采用C/S与B/S结合的结构,客户端与客户端一级客户端与服务端之间通过Socket传递消息。使用嵌入式C+语言编写,开发工具采用linux下的QT环境。 服务器设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大 增强了程序对服务器资源的利用。在linux下编写并调试服务器端程序与客户端程序,实现了客户、服务器之间的连接和通信。关键字:linux;qt;tcp/ip;聊天一、 设计的总体目的与功能1、聊天程序的基本要求(1)、在QT(或miniGUI)编写聊天程序,交叉编译后下载到目标机

6、,可实现两台目标机可发送文本聊天。(2)、QT(或miniGUI)界面设计至少包括“发送”,“重置”两个按钮,要求必须把目标机的硬件键盘映射到QT设计的软件界面中,实现软件按钮的功能。2、需实现的主要功能(1) 客户端输入服务器IP和端口号。(2)服务器必须成功启动。(3)每一个客户端可以寻找服务器,并且与服务器建立连接。(4)客户端和服务器可以实现通信。(5)通信的内容可以显示在面板上。(6)利用QT设计界面,并下载到ARM2410上面二、方案论证(可行性方案、系统实现方案)1、QT设计QT设计编写和调试阶段使用周立功ARM2410箱子提供的QTforPC编译器,运行测试阶段使用QTforA

7、RM编译器。使用QTforPC阶段编译程序的步骤如下(以编译hello.cpp程序为例):(1) 进入/x86-qtopia目录,运行set-env脚本,设置环境变量。$.set-env(2) 进入hello目录,然后用progen工具生成工程文件hello.pro。 $cdhello $vihello.cpp$progentapp.tohello.pro(3) 使用tmake工具,生成hello工程的Makefile文件。 $ tmake-oMakefilehello.pro(4) 修改Makefile文件,在LIBS变量中增加需要用到的库,然后输入 make命令编译。 LIBS=$(SUB

8、LIBS)-L$(QTDIR)/lib-lqte-lm-lstdc+$make(5) 启动虚拟控制台,运行hello程序(主机须启动帧缓冲,必须能够 访问/dev/fb0)。 $cd/zylinux/x86-qtopia $.set-env $cdhello $./helloqws 如果要将Hello程序发布到ARM2410上运行,还需进行以下工作:(6)进入/zylinux/arm-qtopia目录,并将hello工程复制到当前目录下。 $cd/zylinux/arm-qtopia $cpav/zylinux/x86-qtopia/hello(7)运行当前目录下的set-env文件,重新设置

9、环境变量,进入hello目录,使用tmake工具,重新生成Makefile文件。 $.set-env $cdhello $tmake-oMakefilehello.pro(8)按照步骤(4)的方法修改包含库,编译,得到可执行文件hello,将hello文件添加到文件系统中,更新文件系统。(9)插入USB鼠标和USB键盘,启动ARM2410。启动Qtopia的终端,运行hello程序。利用同样的编译方法,客户端QT程序进行编译和调试。2、客户端QT界面设计客户端QT需要以下基本组件:(1)两个QEditLine,一个用于输入服务器IP地址(可读可写),另一个用于输入服务器端口号(可读可写)。(2

10、)三个按钮,一个用于连接服务器,另一个用于发送消息,最后一个用于清空发送区域数据。(3)四个标签,用于显示不用组件的内容。(4)两个MultiLineedit,一个用于显示通信内容(只读),一个作为发送区域(可读可写)。3、服务器端和客户端的数据传输方式服务器端和客户端的数据是用TCP套接字来传输的。IP地址表示Internet上的计算机,端口号标识正在计算机运行的进程。端口号与IP地址的组合得出一个网络套接字。客户端使用linuxC函数socket建立到服务器的套接字连接。当套接字连接socket建立后,可以利用linuxC语言中的send函数和recv函数来实现简单的发送和接收消息。4、服

11、务器端功能设计由于时间有限,服务器并没有用QT来编写界面,只是实现一个简单的控制程序。服务器主要实现有:(1)创建套接字(2)对套接字、IP地址和端口号进行绑定(3)进行监听(4)等待客户端的连接(5)对客户端接收和发送数据5客户端功能设计客户端使用QT设计界面,客户端实现的功能如下:(1) 创建套接字 (2)连接服务器 (3)与服务器通信6详细设计(1)、功能分析和描述:聊天工具包括两大功能模块:客户端和服务器端。具体实现的功能创建套接字、连接通信、接收数据显示和发送数据。(2)、客户端功能模块 连接服务器 连接服务器之前需要解析服务器地址、创建套接字、设置sockaddr_in 结构体中相

12、关参数。 发送消息功能 连接功能是开始聊天前必须进行的步骤连接成功之后就可以进行发送消息了。发送消息功能流程图如图2-5所示。接收消息模块 连接成功后就可以接收服务器发送过来的数据。 (3)、服务器功能模块服务器的设计并没有使用QT编写界面,服务器端实现的功能有服务器模块流程图三、硬件电路设计或软件设计1、代码实现 (1)、客户端代码 QT构造和析构函数 EditDemo:EditDemo(QWidget *parent, const char *name):QWidget(parent, name) QGridLayout *grid = new QGridLayout(this, 6, 3

13、, 0, 0); /IP addr QLabel *label1 = new QLabel( IP Addr:, this); grid-addWidget( label1, 0, 0 ); edit_ip = new QLineEdit(this); edit_ip-setText(127.0.0.1); grid-addWidget( edit_ip, 0, 1 ); /Server Port QLabel *label2 = new QLabel( Server Port:, this); grid-addWidget( label2, 1, 0); edit_port = new QL

14、ineEdit(this); edit_port-setText(4321); grid-addWidget( edit_port, 1, 1); QPushButton *btn = new QPushButton(Connect, this); /*add the connect button*/ grid-addWidget(btn,2,1); /*add the button*/ connect(btn, SIGNAL(clicked(), this, SLOT(ButtonConnect(); /multiline input mode QLabel *label3 = new QL

15、abel( Contract Area:, this); grid-addWidget(label3, 3, 0); multiedit_contract = new QMultiLineEdit(this); multiedit_contract-setReadOnly(1);/set read only grid-addWidget(multiedit_contract,3,1); QLabel *label4 = new QLabel( Send Area:, this); grid-addWidget(label4, 4, 0); multiedit_send = new QMulti

16、LineEdit(this); grid-addWidget(multiedit_send,4,1); QPushButton *button_send = new QPushButton(Send, this); /*add the send button*/ grid-addWidget( button_send, 5, 0); connect(button_send,SIGNAL(clicked(),this, SLOT(ButtonSend(); QPushButton *button_clear = new QPushButton(Clear, this); /*add the cl

17、ear button*/ grid-addWidget(button_clear,5,1); connect(button_clear,SIGNAL(clicked(),this,SLOT(ButtonClear(); EditDemo:EditDemo() if(socket_flag = 1)/*if create socket success*/ close(sockfd); /*Close the socket*/ printf(Close the socketn); 创建套接字 void EditDemo:CreateSocket(void) /*地址解析函数*/ host = ge

18、thostbyname(edit_ip-text() /*创建socket*/ sockfd = socket(AF_INET,SOCK_STREAM,0); /*设置sockaddr_in 结构体中相关参数*/ serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(atoi(edit_port-text(); serv_addr.sin_addr = *(struct in_addr *)host-h_addr); bzero(&(serv_addr.sin_zero), 8); 创建线程 void *task(void *ar

19、g) int recvbytes = 0; char bufBUFFER_SIZE= 0; arg = arg; while(1) if(recvbytes = recv(sockfd, buf, BUFFER_SIZE, 0) 0) multiedit_contract-append(Server said: +(QString)buf); void CreateThread(void) int result = 0; result = pthread_create(&thread1, NULL, task, (void *)0); /*Create Thread*/ (2)、服务器端代码

20、#define PORT 4321 #define BUFFER_SIZE 1024 #define MAX_QUE_CONN_NM 5 int main() struct sockaddr_in server_sockaddr, client_sockaddr; int sin_size, recvbytes; unsigned int sendbytes = 0; int sockfd, client_fd; char bufBUFFER_SIZE; /*建立socket连接*/ sockfd = socket(AF_INET,SOCK_STREAM,0) /*设置sockaddr_in

21、结构体中相关参数*/ server_sockaddr.sin_family = AF_INET; server_sockaddr.sin_port = htons(PORT); server_sockaddr.sin_addr.s_addr = INADDR_ANY; bzero(&(server_sockaddr.sin_zero), 8); int i = 1;/* 使得重复使用本地地址与套接字进行绑定 */ setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &i, sizeof(i); /*绑定函数bind*/ ibind(sockfd, (str

22、uct sockaddr *)&server_sockaddr, sizeof(struct sockaddr); /*调用listen函数*/ listen(sockfd, MAX_QUE_CONN_NM); /*调用accept函数等待客户端的连接*/ client_fd = accept(sockfd, (struct sockaddr *)&client_sockaddr, &sin_size); /*调用recv函数接收客户端的请求*/ while(1) memset(buf , 0, sizeof(buf); recvbytes = recv(client_fd, buf, BUF

23、FER_SIZE, 0); if(recvbytes 0) printf(Received a message: %sn, buf); printf(Send a message: %sn, buf); (sendbytes = send(client_fd, buf, strlen(buf), 0); close(sockfd); exit(0); 四、结果分析(对获得的数据、波形、现象或问题进行分析) 4.运行结果五、参考文摘(相关文摘不少于5篇,记录每篇文献的作者姓名.文献名称.文献发行城市:文献出版社,出版年;文献内容摘要, 每篇不少于100字)1 嵌入式Linux应用程序开发标准教程

24、.人民邮电出版社。2010.7 2何加铭主编.嵌入式32位微处理器系统设计与应用.电子工业出版社.2006年3许海燕,付炎著.嵌入式系统技术与应用.机械工业出版社.2002年4周立功主编.ARM嵌入式系统基础教程.北京航空航天大学出版社.2005年5田泽主编.嵌入式系统开发与应用教程.北京航空航天大学出版社.2005年6徐英慧;马忠梅;王磊;王琳主编.ARM9嵌入式系统设计-基于sc32410与linux(第二版).北京航空航天大学出版社.2010年课程设计评分表评 分 项 目评分成绩1目的明确、功能合理(10分)2设计方案正确,具有可行性、创新性(20分)3硬件电路正确、软件流程清晰(40分

25、)4参考文摘不少于5篇(10分)5答辩(20分)总 分(100分)答辩记录:指导教师综合评语:指导教师(签名) 日 期: 年 月 日1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究2. 基于单片机的嵌入式Web服务器的研究 3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器7. 单片机控制的二级倒立摆系统的研究8. 基于增强型51系列单片机的TCP/IP

26、协议栈的实现 9. 基于单片机的蓄电池自动监测系统 10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究11. 基于单片机的作物营养诊断专家系统的研究 12. 基于单片机的交流伺服电机运动控制系统研究与开发 13. 基于单片机的泵管内壁硬度测试仪的研制 14. 基于单片机的自动找平控制系统研究 15. 基于C8051F040单片机的嵌入式系统开发 16. 基于单片机的液压动力系统状态监测仪开发 17. 模糊Smith智能控制方法的研究及其单片机实现 18. 一种基于单片机的轴快流CO,2激光器的手持控制面板的研制 19. 基于双单片机冲床数控系统的研究 20. 基于CYGNAL单片机的

27、在线间歇式浊度仪的研制 21. 基于单片机的喷油泵试验台控制器的研制 22. 基于单片机的软起动器的研究和设计 23. 基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究 24. 基于单片机的机电产品控制系统开发 25. 基于PIC单片机的智能手机充电器 26. 基于单片机的实时内核设计及其应用研究 27. 基于单片机的远程抄表系统的设计与研究 28. 基于单片机的烟气二氧化硫浓度检测仪的研制 29. 基于微型光谱仪的单片机系统 30. 单片机系统软件构件开发的技术研究 31. 基于单片机的液体点滴速度自动检测仪的研制32. 基于单片机系统的多功能温度测量仪的研制 33. 基于PIC

28、单片机的电能采集终端的设计和应用 34. 基于单片机的光纤光栅解调仪的研制 35. 气压式线性摩擦焊机单片机控制系统的研制 36. 基于单片机的数字磁通门传感器 37. 基于单片机的旋转变压器-数字转换器的研究 38. 基于单片机的光纤Bragg光栅解调系统的研究 39. 单片机控制的便携式多功能乳腺治疗仪的研制 40. 基于C8051F020单片机的多生理信号检测仪 41. 基于单片机的电机运动控制系统设计 42. Pico专用单片机核的可测性设计研究 43. 基于MCS-51单片机的热量计 44. 基于双单片机的智能遥测微型气象站 45. MCS-51单片机构建机器人的实践研究 46. 基

29、于单片机的轮轨力检测 47. 基于单片机的GPS定位仪的研究与实现 48. 基于单片机的电液伺服控制系统 49. 用于单片机系统的MMC卡文件系统研制 50. 基于单片机的时控和计数系统性能优化的研究 51. 基于单片机和CPLD的粗光栅位移测量系统研究 52. 单片机控制的后备式方波UPS 53. 提升高职学生单片机应用能力的探究 54. 基于单片机控制的自动低频减载装置研究 55. 基于单片机控制的水下焊接电源的研究 56. 基于单片机的多通道数据采集系统 57. 基于uPSD3234单片机的氚表面污染测量仪的研制 58. 基于单片机的红外测油仪的研究 59. 96系列单片机仿真器研究与设

30、计 60. 基于单片机的单晶金刚石刀具刃磨设备的数控改造 61. 基于单片机的温度智能控制系统的设计与实现 62. 基于MSP430单片机的电梯门机控制器的研制 63. 基于单片机的气体测漏仪的研究 64. 基于三菱M16C/6N系列单片机的CAN/USB协议转换器 65. 基于单片机和DSP的变压器油色谱在线监测技术研究 66. 基于单片机的膛壁温度报警系统设计 67. 基于AVR单片机的低压无功补偿控制器的设计 68. 基于单片机船舶电力推进电机监测系统 69. 基于单片机网络的振动信号的采集系统 70. 基于单片机的大容量数据存储技术的应用研究 71. 基于单片机的叠图机研究与教学方法实

31、践 72. 基于单片机嵌入式Web服务器技术的研究及实现 73. 基于AT89S52单片机的通用数据采集系统 74. 基于单片机的多道脉冲幅度分析仪研究 75. 机器人旋转电弧传感角焊缝跟踪单片机控制系统 76. 基于单片机的控制系统在PLC虚拟教学实验中的应用研究77. 基于单片机系统的网络通信研究与应用 78. 基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究79. 基于单片机的模糊控制器在工业电阻炉上的应用研究 80. 基于双单片机冲床数控系统的研究与开发 81. 基于Cygnal单片机的C/OS-的研究82. 基于单片机的一体化智能差示扫描量热仪系统研究 83. 基于TCP

32、/IP协议的单片机与Internet互联的研究与实现 84. 变频调速液压电梯单片机控制器的研究 85. 基于单片机-免疫计数器自动换样功能的研究与实现 86. 基于单片机的倒立摆控制系统设计与实现 87. 单片机嵌入式以太网防盗报警系统 88. 基于51单片机的嵌入式Internet系统的设计与实现 89. 单片机监测系统在挤压机上的应用 90. MSP430单片机在智能水表系统上的研究与应用 91. 基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用92. 单片机在高楼恒压供水系统中的应用 93. 基于ATmega16单片机的流量控制器的开发 94. 基于MSP430单片机的远程抄表系

33、统及智能网络水表的设计95. 基于MSP430单片机具有数据存储与回放功能的嵌入式电子血压计的设计 96. 基于单片机的氨分解率检测系统的研究与开发 97. 锅炉的单片机控制系统 98. 基于单片机控制的电磁振动式播种控制系统的设计 99. 基于单片机技术的WDR-01型聚氨酯导热系数测试仪的研制 100. 一种RISC结构8位单片机的设计与实现 101. 基于单片机的公寓用电智能管理系统设计 102. 基于单片机的温度测控系统在温室大棚中的设计与实现103. 基于MSP430单片机的数字化超声电源的研制 104. 基于ADC841单片机的防爆软起动综合控制器的研究105. 基于单片机控制的井

34、下低爆综合保护系统的设计 106. 基于单片机的空调器故障诊断系统的设计研究 107. 单片机实现的寻呼机编码器 108. 单片机实现的鲁棒MRACS及其在液压系统中的应用研究 109. 自适应控制的单片机实现方法及基上隅角瓦斯积聚处理中的应用研究110. 基于单片机的锅炉智能控制器的设计与研究 111. 超精密机床床身隔振的单片机主动控制 112. PIC单片机在空调中的应用 113. 单片机控制力矩加载控制系统的研究 项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功!项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功!单片机论文,毕业设计,毕业论文,单片机设计,硕士论文,研究生论文,单片机研究论文,单片机设计论文,优秀毕业论文,毕业论文设计,毕业过关论文,毕业设计,毕业设计说明,毕业论文,单片机论文,基于单片机论文,毕业论文终稿,毕业论文初稿,本文档支持完整下载,支持任意编辑!本文档全网独一无二,放心使用,下载这篇文档,定会成功!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁