基于嵌入式系统得聊天程序设计

上传人:人*** 文档编号:494030401 上传时间:2023-03-05 格式:DOC 页数:21 大小:219KB
返回 下载 相关 举报
基于嵌入式系统得聊天程序设计_第1页
第1页 / 共21页
基于嵌入式系统得聊天程序设计_第2页
第2页 / 共21页
基于嵌入式系统得聊天程序设计_第3页
第3页 / 共21页
基于嵌入式系统得聊天程序设计_第4页
第4页 / 共21页
基于嵌入式系统得聊天程序设计_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《基于嵌入式系统得聊天程序设计》由会员分享,可在线阅读,更多相关《基于嵌入式系统得聊天程序设计(21页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告书设计名称: 基于嵌入式系统的聊天程序设计 课程名称: 嵌入式系统开发 摘要随着IT技术的日益开展,嵌入式设备的功能越来越强大。 嵌入式设备决不再只是充当一个小小的个人信息管理工具了,更重要的是可以上网浏览、收发,在线聊天等。然而就目前国内市场来说,并不是所有的嵌入式设备都具备以上所有的功能,即使具备,也可能由于缺乏相应的服务而不能实现。但可以预见,嵌入式设备开展的趋势和潮流就是计算、通信、网络、存储等功能的融合。目前市场上大多数的嵌入式系统都是商业化产品,价格昂贵,因此在开发过程中有必要使用一个模拟器,使得在PC上可以模拟一个嵌入式设备。在Pc机上可以方便的开发和测试程序,并且可

2、以帮助工程师快速的进展分析和改良,提高了工作效率和降低了项目的开发本钱。在嵌入式操作系统的领域中,Linux以其特有的魅力得到了众多开发商的亲睐。Linux特性包括可以移植到多个同结构的CPU和硬件平台上,有很好的稳定性以与各种性能的升级能力。嵌入式linux在电子行业的应用很广泛,学习嵌入式linux显得非常重要。这次课程设计的主要目的是检验上学期学习linux后的效果。通过根底题的代码编写,熟悉linux C语言编程技巧。通过完成聊天程序的设计,熟悉linux底层编程。利用QT设计界面,缩短开发时间。关键字:嵌入式linux;根底题;聊天程序;QT 一、引言1二、 系统分析22.1开发背景

3、22.2聊天程序的根本需求22.3需实现的主要功能2三、需求分析33.1 QT设计343.2服务器端和客户端的数据传输方式43.3 服务器端功能设计53.4客户端功能设计5四、总体设计54.1 总体功能5五、 详细设计65.1 功能分析和描述65.2 客户端功能模块66675.3 服务器功能模块8六、代码实现86.1 客户端代码8810116.2 服务器端代码11七、功能的实现过程13八、总结13一、引言随着IT(信息)技术的飞速开展,特别是互联网的迅速普与,3C(计算机、通讯、消费电子)合一的加速,数字化时代已经降临。嵌入式系统是数字化时代的一大主流产品,世界各国在此领域开始了激烈竞争,以争

4、取获得主导地位。嵌入式系统是数字化产品的核心。为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCPIP协议族软件支持;由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)与实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEEl394、USB、Bluetooth或Ir DA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。可以想象,如果一个

5、体积很小的嵌入式系统能够进展在线聊天,HrrP通信,这将是会一件充满意义的事情。但是现在大多数的嵌入式系统都是商业化产品,价格昂贵。所以嵌入式系统开发前期投入比拟大,开发工具投入高。为了改变这种状况,有必要设计一个模拟器,使得在PC上可以模拟一个嵌入式设备。在PC机上可以方便的开发和测试程序,并且可以帮助工程师快速的进展分析和改良,提高了工作效率和降低了项目的开发本钱。随着自由软件理念日益为大众广为承受,一批自由软件在IT的各个领域取得了巨大成功,Linux是其中最具代表性的一个。其自由、开放的特性吸引了大批软件厂商和独立开发人员。多年的开展和业界某某的共同努力已使其成为高效、稳定、低本钱的操

6、作系统。而且由于Linux开放源代码,任何人都可以对其进展裁减、修改,以适应自行开发的需要。二、 系统分析2.1开发背景IRC(Intemet Relay Chat,网络中继聊天协议用于文本交谈被设计出来已经有许多年了。IRc协议是基于客户服务器模型的,可以很好地分布式地在许多机器上运行。一个典型的设置涉与一个进程(服务器),它作为中心点承受客户(或其它服务器)的连接,并且实现要求的消息传送多元技术和其它的功能。这种分布模型,由于它要求每个服务器都拥有全局状态信息,限制了一个网络所能达到的最大规模。因此是此协议最令人不能容忍的问题。现存的网络能够以难以置信的速度持续增长,我们必须感谢硬件制造商

7、们给了我们比以往更加强大的系统。IRC协议本身就是个会议系统(虽然使用的是CS模式),所以非常适合分布式的多个机器上使用。一个典型的建立包括一个单一的处理器(服务器)形成一个中心节点,客户机(或其他服务器)连接这个节点去获取消息或发送,群发等功能。IRC协议已经在使用TCPIP网络协议的系统中应用了。虽然TCPIP协议并不是必须的,但是现在IRC操作仅使用在这个方面。2.2聊天程序的根本需求1、在QT或miniGUI编写聊天程序,交叉编译后下载到目标机,可实现两台目标机可发送文本聊天。2、QT或miniGUI界面设计至少包括“发送,“重置两个按钮,要求必须把目标机的硬件键盘映射到QT设计的软件

8、界面中,实现软件按钮的功能。2.3需实现的主要功能(1) 客户端输入服务器IP和端口号。(2) 服务器必须成功启动。(3) 每一个客户端可以寻找服务器,并且与服务器建立连接。(4) 客户端和服务器可以实现通信。(5) 通信的内容可以显示在面板上。(6) 利用QT设计界面,并下载到MagicARM2410上面。三、需求分析3.1 QT设计QT设计编写和调试阶段使用周立功MagicARM2410箱子提供的QT for PC编译器,运行测试阶段使用QT for ARM编译器。使用QT for PC阶段编译程序的步骤如下以编译hello.cpp程序为例:1进入/x86-qtopia,运行set-env

9、脚本,设置环境变量。$ . set-env2进入hello,然后用progen工具生成工程文件hello.pro。$ cd hello$ vi hello.cpp$ progen t app.t o hello.pro3使用tmake工具,生成hello工程的Makefile文件。$ tmake -o Makefile hello.pro4修改Makefile文件,在LIBS变量中增加需要用到的库,然后输入make命令编译。LIBS = $(SUBLIBS) -L$(QTDIR)/lib -lqte -lm -lstdc+$ make5启动虚拟控制台,运行hello程序主机须启动帧缓冲,必须能

10、够访问/dev/fb0。$ cd /zylinux/x86-qtopia$ . set-env$ cd hello$ ./hello qws如果要将Hello程序发布到MagicARM2410上运行,还需进展以下工作:6进入/zylinux/arm-qtopia,并将hello工程复制到当前下。$ cd /zylinux/arm-qtopia$ cp av /zylinux/x86-qtopia/hello 7运行当前下的set-env文件,重新设置环境变量,进入hello,使用tmake工具,重新生成Makefile文件。$ . set-env$ cd hello$ tmake -o Mak

11、efile hello.pro8按照步骤(4)的方法修改包含库,编译,得到可执行文件hello,将hello文件添加到文件系统中,更新文件系统。9插入USB鼠标和USB键盘,启动MagicARM2410。启动Qtopia的终端,运行hello程序。利用同样的编译方法,客户端QT程序进展编译和调试。客户端QT界面设计客户端QT需要以下根本组件:1两个QEditLine,一个用于输入服务器IP地址可读可写,另一个用于输入服务器端口号可读可写。2三个按钮,一个用于连接服务器,另一个用于发送消息,最后一个用于清空发送区域数据。3四个标签,用于显示不用组件的内容。4两个MultiLineedit,一个用

12、于显示通信内容只读,一个作为发送区域可读可写。3.2服务器端和客户端的数据传输方式服务器端和客户端的数据是用TCP套接字来传输的。IP地址表示Internet上的计算机,端口号标识正在计算机运行的进程。端口号与IP地址的组合得出一个网络套接字。客户端使用linux C 函数socket建立到服务器的套接字连接。 当套接字连接socket建立后,可以利用linux C语言中的send函数和recv函数来实现简单的发送和接收消息。3.3 服务器端功能设计由于时间有限,服务器并没有用QT来编写界面,只是实现一个简单的控制程序。服务器主要实现有:1创建套接字2对套接字、IP地址和端口号进展绑定3进展监

13、听4等待客户端的连接5对客户端接收和发送数据3.4客户端功能设计客户端使用QT设计界面,客户端实现的功能如下: 1创建套接字 2连接服务器 3与服务器通信四、总体设计4.1 总体功能根据对需求所做的分析,聊天程序需要实现的根本功能应包括以下几个方面:(1) 客户端输入服务器IP和端口号。(2) 服务器必须成功启动。(3) 每一个客户端可以寻找服务器,并且与服务器建立连接。(4) 客户端和服务器可以实现通信。(5) 通信的内容可以方便查看。 使用QT设计的界面简洁,大方,操作简单,方便,容易上手,用户可以快速掌握操作流程。五、 详细设计5.1 功能分析和描述聊天工具包括两大功能模块:客户端和服务

14、器端。具体实现的功能创建套接字、连接通信、接收数据显示和发送数据。5.2 客户端功能模块连接服务器连接服务器之前需要解析服务器地址、创建套接字、设置sockaddr_in 结构体中相关参数。连接功能是开始聊天前必须进展的步骤,连接成功之后,就可以进展发送消息了。发送消息功能流程图如图2-5所示: 图2-5 发送消息功能流程图消息模块连接成功后,就可以接收服务器发送过来的数据。5.3 服务器功能模块服务器的设计并没有使用QT编写界面,服务器端实现的功能有: 图2-8 服务器模块流程图六、代码实现6.1 客户端代码EditDemo:EditDemo( QWidget *parent, const char *name):QWidget(parent, name)QGridLayout *grid = new QGridLayout(this, 6, 3, 0, 0);/IP addrQLabel *label1 = new QLabel( IP Addr:, this);grid-addWidget( label1, 0, 0 );edit_ip = new QLineEdit(this);grid-addWidget( edit_ip, 0, 1 );/Server PortQLabel *label2 = new QLabel( S

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

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号