
软件设计TCPIP网络通信程序设计实验报告.docx
41页南京邮电大学通信与信息工程学院课程设计报告201 /201 学年 第二学期课程设计 实验报告模 块 名 称 TCP/IP网络通信程序设计专 业 学 生 班 级 学 生 学 号 学 生 姓 名 指 导 教 师 QT5.6环境下的源代码目 录题目1获取计算机的名称和IP地址 11、设计内容 12、设计分析论述及程序实现流程框图 13、关键实现代码及注解 24、程序运行测试与结果 45、程序设计中遇到的问题及改进思路 4题目2基本C/S模式的通信实验 51、设计内容 52、设计分析论述及程序实现流程框图 53、关键实现代码及注解 84、程序运行测试与结果 215、程序设计中遇到的问题及改进思路 23题目3简单的浏览器的实现 241、设计内容 242、设计分析论述及程序实现流程框图 243、关键实现代码及注解 254、程序运行测试与结果 265、程序设计中遇到的问题及改进思路 28题目4利用smtp协议发送邮件 291、设计内容 292、设计分析论述及程序实现流程框图 293、关键实现代码及注解 304、程序运行测试与结果 375、程序设计中遇到的问题及改进思路 38课程设计小节 39附录 402题目1获取计算机的名称和IP地址1、设计内容获取计算机的名称和IP地址实验 编写程序实现下述功能:获取计算机的名称和IP地址2、设计分析论述及程序实现流程框图 Qt Creator是一个用于Qt开发的轻量级跨平台集成开发环境。
Qt Creator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境 (IDE),并确保首次接触Qt框架的开发人员能迅速上手和操作即使不开发Qt应用程序,Qt Creator也是一个简单易用且功能强大的IDEQt数据库中提供QtNetwork Module中的QHostInfo、QHostAddress、QNetworkInterface和QNetAddressEntry等类来查询网络参数QNetworkInterface类提供了程序所运行的主机IP地址和网络接口信息的列表,在一个网络接口信息中,包含一个或多个IP地址,每一个IP地址又包含和它相关的子网掩码和广播地址它们三者别封装在一个对象中QNetworkAddressEntry,网络接口信息也包含了硬件地址信息[1]完成界面getHostInformation()函数获得主机信息slotDetail()函数网络接口信息运行出结果3、关键实现代码及注解1. 在NetworkInformation.pro文件中,添加QT += network2. 在头文件networkinformation.h中添加如下代码:#include
3. 在源文件networkinformation.cpp中添加代码其中在构造函数的最后添加:getHostInformation(); //用于获得主机信息connect(detailBtn,SIGNAL(clicked()),this,SLOT(slotDetail()));4. getHostInformation()函数用于获得主机信息具体实现代码如下:void NetworkInformation::getHostInformation(){ QString localHostName = QHostInfo::localHostName();//获得本机主机名 LineEditLocalHostName->setText(localHostName); QHostInfo hostInfo = QHostInfo::fromName(localHostName);//根据主机名获得相关主机信息,包括IP地址等QHostInfo::fromName()函数通过主机名查找IP地址信息 QList
在不为空的情况下使用第一个IP地址 { LineEditAddress->setText(listAddress.first().toString()); }}注释见上[2]5. slotDetail()函数获得与网络接口相关的信息,具体实现代码如下:void NetworkInformation::slotDetail()//获得与网络接口相关的信息{ QString detail=""; QList 将PushButton的属性checkable设置为真,则运行时鼠标单击一下,按钮的颜色会变淡,再单击一下又会变亮,它是以颜色的的深浅来提醒它的toggle的菜单栏中的一个选项,一般是用trigger来发射信号2.报错出现“cannot find file main.pro ”,原因是QT所使用的工程,目录树中出现汉字,空格等题目2基本C/S模式的通信实验1、设计内容基本C/S模式的通信实验编写程序实现一个基于UDP 模式的通信程序和一个基于TCP 模式的通信程序基本要求:能输入计算机的IP地址和端口号,能输入、发送文本信息和显示接受的文本信息2、设计分析论述及程序实现流程框图一、基于UDP模式在UDP方式下,它是一个不可靠的,面向数据报的无连接协议客户端并不与服务器建立连接,它只负责调用发送函数向服务器发出数据报同样,服务器也不从客户端接收连接,只负责调用接收函数,等待来自某客户端的数据到达Qt中通过QupSocket类实现UDP协议的编程Socket简单地说,就是一个IP 地址加一个port端口因为要传输数据,就要知道往哪个机子上传送,而IP 地址确定了一台主机,但是这台机子上可能运行着各种各样的网络程序,这时就要使用一个端口来指定UDP 程序。 所以说,Socket 指明了数据报传输的路径编写两个程序,一个用来发送数据报,叫做客户端;另一个用来接收数据报,叫做服务器端,均应用UDP 协议这样也就构成了所谓的C/S(客户端/服务器)编程模型首先做服务器端先在头文件udpclient.h中声明需要的各种控件,完成对应源代码,从而先形成一个服务器的界面然后在头文件udpclient.h中添加需要的槽函数,在源文件udpserver.cpp中添加声明,设置好端口参数(本程序设置为5555)并且创建QUdpSocket,使程序能够定向发送广播地址接下来做客户端同样先在头文件udpclient.h中声明需要的各种控件,完成对应源代码,从而形成一个客户端的界面然后在构造函数中设置相对应的端口号参数(5555),定义CloseBtnClicked()和dataReceived()函数,最后实现客户端的功能图2-1 UDP协议工作原理图2-2 UDP客户端与服务器之间的交互方式二、基于TCP模式1.图2-3 TCP协议工作原理2. 图2-4 TCP客户端与服务器间的交互时序3.图2-5 TCP文件传输结构3、关键实现代码及注解一、基于UDP模式服务器端:1.在UdpServer.pro中添加:QT += network2.在头文件udpserver.h中添加需要的槽函数:#include












