嵌入式系统应用
大作业设计文档
题目:基于QTTCP socket通信程序
                  嵌入式系统应用   
    系:          
                      专业班级:     通信工程         
                          号:          
                      学生姓名:             
2009 12 24
                             
                                  目录
1、QT简介    3
2、需求分析    4
2.1功能:    4
2.2 设计要求:    4
3、概要设计    4
4、详细设计    5
4.1 TCP socket 通信工作原理    5
4.2 猜字游戏的功能说明    6
4.3 猜字游戏的实现    6
4.4 猜字游戏服务器端的交叉编译    10
5、调试分析    12
6、测试结果    13
7、参考文献    13
1QT简介
Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。
Qt是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。
  自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。
Qt支持下述平台:
  MS/Windows - 9598NT 4.0ME2000XP Vista
  Unix/X11 - LinuxSun SolarisHP-UXCompaq Tru64 UNIXIBM AIXSGI IRIX和其它很多X11平台
  Macintosh - Mac OS X
  Embedded - 有帧缓冲(framebuffer)支持的Linux平台,Windows CE
  Qt是诺基亚公司的一个产品。 
  Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件
之间的协同工作变得十分简单。
  3. 丰富的 API
  Qt 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections serialization file I/O device directory management date/time 类。甚至还包括正则表达式的处理 功能。
Qt被按不同的版本发行:
  Q商业版 提供给商业软件开发。它们提供传统商业软件发行版并且提供免费升级和技术支持服务。如果要获得最新信息,请浏览诺基亚公司Qt Software网站页面,或者与sales@trolltech联系。商业版多一些扩展模块。
  Qt开源版是Qt仅仅为了开发自由和开放源码软件 提供的Unix/X11版本。在Q公共许可证和GNU通用公共许可证下,它是免费的。最新的版本可以在这里下载。
  从计划于20093月发布的Qt 4.5 起,诺基亚将为Qt增添新的开源LGPL授权选择。
  Qt/嵌入式开源版是Qt为了开发自由软件提供的嵌入式版本。在GNU通用公共许可证下,它
是免费的。
Qt文件格式
  Apple公司开发的一种音频、视频文件格式,用于保存音频和视频信息,具有先进的音频和视频功能,由包括Apple Mac OSMicrosoft Windows 95/98/NT在内的所有主流计算机操作系统支持。是MAC常用播放软件——Quicktime的主要视频格式之一(其他的还有MOV等),Qt文件格式支持25 位彩,支持RLCJPEG等领先的集成压缩技术,提供150多种视频效果。
2、需求分析
2.1功能:
该设计主要实现基于TCPsocket编程的猜字游戏,分服务器和客户端,服务端监听客户端的连接,当客户端连接上服务器时,通过给服务器发送数字来与服务器实现通信。当客户端发送一个数字给服务器时,服务器进行处理。
2.2 设计要求:
程序设计对于客户端的输入值有严格的要求,输入形式为数字,输入值的范围取在09之间,当输入值超出这个范围时,提示出错,并不给予处理。
根据客户端的输入,程序判断输入值,然后给予:正确、出错、请输入的处理。
服务器从网络读取输入数据,并与事先随机生成的数字比较,相等则提示正确,反之,则提示错误,并把正确的数字发送到客户端显示出来。
3、概要设计
【1】 TCP 客户端的工作流程:
1)创建TCP套接口。客户端也是通过调用socket()函数来创建套接口。
2)指定服务器IP地址和端口
3)建立与服务器的链接。通过调用connect()函数与服务器取得链接。connect函数原型为:
#include <sys/socket.h>
#include <sys/types.h> 
int connect(int sockfd,const struct sockadd *servaddr, socklen_t *addrlen);
(4)读入并输出服务器的应答
5)终止程序
【2】 TCP 服务器的工作流程:
1)创建TCP套接口。客户端也是通过调用socket()函数来创建套接口。
2)通过bind函数把socket的与主机的信息进行绑定。
3)通过listen的函数监听客户端的连接。
3)通过accept接受客户端的连接。
(4)读入并输出服务器的应答。
5)终止程序。服务器与客户端建立连接后,服务器创建一个ClientSocket来处理请求,
4、详细设计
4.1 TCP socket 通信工作原理
客户端:
1)创建TCP套接口。客户端也是通过调用socket()函数来创建套接口。
2)指定服务器IPsocket通信报文格式地址和端口
3)建立与服务器的链接。通过调用connect()函数与服务器取得链接。
(4)读入并输出服务器的应答
5)终止程序
服务器:
1)创建TCP套接口。客户端也是通过调用socket()函数来创建套接口。
2)通过bind函数把socket的与主机的信息进行绑定。
3)通过listen的函数监听客户端的连接。
3)通过accept接受客户端的连接。
(4)读入并输出服务器的应答。
5)终止程序。
4.2 猜字游戏的功能说明
实现以下功能:(1)客户端程序从标准输入,从键盘读入一个数字并发送给服务器。(2) 服务器从网络输入,读取该数并把它与事先随机生成的数字相比较,若相等,则提示用户猜对了;否则,提示错误并把正确数字发送给客户显示出来。
4.3 猜字游戏的实现
1TCP客户端实现Client:
  connect(send, SIGNAL(clicked()),SLOT(sendToServer()) );
    connect(close, SIGNAL(clicked()),SLOT(closeConnection()) );