本设计采用TCP传输协议,与UDP传输协议相比TCP协议更加可靠,这是因为TCP是面向连接的,即在发送数据前首先要确定连接的建立。通过“三次握手”来实现数据收发的同步性。与TCP协议相比,UDP不用与对方建立连接而是直接发送数据,UDP是面向非连接的传输协议,其本身是一个闭环协议。虽然这种不需确定连接就发送数据的方式只会产生较小的时延,但是不能保障数据的准确与稳定性。虽然本次设计传输的数据并不是很多,但我还是决定采用TCP协议来实现数据传输。
2.2 国内外技术研究现状
2.2.1 基于互联网远程控制的国外研究现状:
2.2.2 基于互联网远程控制的国内研究现状:
2.3 技术选择
2.3.1 温控器及远程控制协议的实现技术:
本次设计代码的实现我选择Qt跨平台开发框架及C++编程语言。C++是一种面向对象的语言且具有很高的性能。另外C++在一定程度上可以和C语言很好的结合,大多数C语言程序也可以在C++的集成环境中开发和实现,使用起来非常的方便。
Qt是一个跨平台C++图形用户界面应用程序开发框架。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程,具有优秀的跨平台特性及丰富的API。Qt为用户提供方便的图形设计界面以及所需的一切功能,用户可以自行设计程序界面,使用起来相当快捷与方便。下图为Qt操作平台。
2.3.2 网络通信模式:
网络通信编程选择了socket通信模式。在网络上当两个程序连接后并且需要进行数据交换时需要通过一个双向的连接即socket。Socket又称"套接字",应用程序通常需要发送请求或者应答网络请求时都要借助"套接字"来实现。
TCP是一个传输协议,它构成了包括FTP和HTTP等很多应用程序层的因特网协议基,它也可以用于定制用户自己的协议。编程时客户端和服务器的实现需要用到QTcpSocket和QTcpServer两个类。TCP是一个基于流的协议,即对应用程序来说,数据是一个长串而不是一个平面文件。在TCP之上建立的高层协议通常是基于行或者基于块的。
基于行的协议把数据作为一行文本进行传输,每一数据行都以一个换行符结束。
基于块的协议把数据作为二进制块进行传输。每一数据块都是由一个大小字段以及其包含的数据组成的。
Socket中TCP要通过“三次握手”来建立连接,流程大致分为:
客户端向服务器发送一个SYN J——“一次握手”。
服务器向客户端相应一个SYN K,并对SYN J进行确然ACK J+1——“二次握手”。
客户端再向服务器发送一个确认ACK K+1——“三次握手”。
通俗点儿理解就是客户端要连接服务器时首先向服务器发送一个请求,这是第一次握手;服务器收到后应答客户端,这是二次握手;客户端收到应答,连接成功,三次握手 QT+socket基于互联网的远程控制协议设计实现(3):http://www.751com.cn/jisuanji/lunwen_31489.html