论文部分内容阅读
摘 要:本团队设计的产品是一款集手机智能管家、自动感应、传感技术等多学科技术为一体的智能化多功能创意鞋柜。与传统鞋柜相比较,该产品具有手机智能管家、自动感应、自动烘干、杀菌、除臭、除尘、通风等功能,且采用模块化创新设计,即用户可根据实际需求选配自动鞋套模块、自动鞋刷模块、可拆卸模块等个性化模块。积极响应国家的号召,努力发展智能行业,利用现代机械优化设计理论和数值分析技术相结合,深度研究了客户端与服务端的通信。
关键词:手机智能管家;多功能;客户端;服务端
伴随着现代科技的高速发展,人民生活素质有了很大的改善,人们对智能家居的追求也开始变得严格起来,更倾向于用手机远程操控家里的家居。针对现如今社会上的这种情况,我们团队运用了以PLC为核心处理器的智能家居远程操控信息系统,把手机智能管家与智能鞋柜结合在一起,用户可通过该手机智能管家随时随地对鞋柜里的鞋子进行除尘、通风、杀菌等一系列的操作。此篇文章中,对该管家式智联多功能鞋柜的客户端与服务端进行了较深入的探究。
一、智能鞋柜概述
(一)实现鞋柜辅助功能
与传统的智能鞋柜相比,该鞋柜的用户可通过智能鞋柜的客户端手机智能管家的操作界面进入烘干、杀菌、通风、一键等界面,可随时随地对鞋柜里的鞋子进行烘干、杀菌、通风、一键(一键启动模块可同时启动烘干、杀菌模块工作)等一系列功能的控制。通过点击手机管家界面上相应的图标,将信号传至给下位机——PLC,由PLC控制相对应的模块进行工作。其定时设置默认40min,用户也可自定义烘干、杀菌、除尘等功能的时间,而通过客户端可以随时随地掌握鞋柜内的温度,鞋柜内部温度最低为26℃,较高于环境温度。智能鞋柜内部空间的温度呈现温度梯度。下面是各功能的简单介绍:
(1)杀菌模块:对鞋柜内的鞋子进行杀菌。采用紫外线灯材料,紫外线灯全方位照射鞋子,可杀死99.99%的细菌,进而达到杀菌消毒的效果。
(2)烘干模块:烘干模块材料选用PTC烘干器,保证烘干过程可以在安全可靠的形式下运行,用户可根据自身需求在外部触摸屏和手机智能管家上设定烘干运行时间,并且在鞋柜内部增设温度传感器,可在手机智能管家上显示当前鞋柜内部温度,即用户可随时随地掌握鞋柜内部温度。
(3)通风模块:烘干模块停止运行后,PLC控制通风模块启动,将鞋柜内部少量残余湿气传至带有氧化钙除湿的通风口进行除湿,并及时送入新鲜气体,鞋柜内部增设活性炭除臭机构和滤网除尘机构,随时随地将鞋柜内部异味气体和灰尘除去,达到净化空气效果,进而改善鞋柜内部环境。
(4)一键模块:一键启动模块可同时启动烘干、杀菌模块的工作,这样,不仅可以很好地提高对鞋子处理的效率,而且节约了用户的时间。
(二)实现对鞋子的信息管理
用户点击客户端手机界面中的管理中心的图标,页面跳转后,可选择“添加、查询、统计”三个按键,默认为“添加”界面,添加界面可供用户上传购买的鞋子的款式、颜色、金额以及购买日期,对鞋子进行分类管理;信息库管理查询界面的搜索设置默认为鞋子的款式、颜色、日期,可供用户查看已上传的购买鞋子的信息;统计界面可供用户查看在每月、每年购买鞋子款式和金额所占的比例(以饼图的形式展示给客户),可以帮助用户对鞋子进行管理,查看购买鞋子支出所占的比例,进而减少不必要的消费。
(三)帮助中心
设置:点击手机APP界面中的设置图标,会出现帮助中心的图标,帮助中心的作用就是负责帮助客户进一步了解该智能鞋柜的客户端,帮助中心所弹出的文字:
①烘干:将鞋子湿气祛除,达到将鞋子干燥的效果,系统定时默认为40min,当按下界面的定时键,弹出设定界面,用户可自行定义烘干工作时间。
②杀菌:除去鞋子和鞋柜内的细菌,系统定时默认为40min,用户可自行定义杀菌工作时间。
③一键:一键模块启动可同时将烘干、杀菌模块启动,系统定时默认为40min,用户可自行定义一键中烘干和杀菌的工作时间。
④通风:改善鞋柜内部空气质量,及时送入新鲜空气,用户可自行定义通风工作时间。
⑤管理中心:上传购买鞋子的信息,用户可通过客户端随时随地去查看购买鞋子的信息,进行管理。
二、客户端与服务端的通信
手机可以通过移动通信方式去访问存储家用电器信息的服务器,通过鞋柜客户端即智能手机管家向服务器发送命令,服务器向家用终端发送命令,根据发出的命令控制与其相应的电器。鞋柜通过连接无线模式连入家庭终端,家庭终端是在服务器和鞋柜之间进行连接中非常重要的角色,它起拥有接收与转发的功能,接收是指它接收到一个所来自服务器的指令,将指令转化为信息系统中可识别的无线制式以实现内部控制。该鞋柜的手机智能管家即为客户端,为鞋柜客户提供控制鞋柜内部操作的服务程序,而服务器的作用则是向客户端供应它所需要的资源,客户端用于向用户展示处理后的结果,服务端用于数据的逻辑处理。并且客户端的程序一般不需要编写,只需对服务器端程序进行编写。想要理解客户端与服务端之间的通信,首先我们需要对系统调用和应用编程接口[1]進行了解。
(一)系统调用
首先我们学习系统调用,系统调用就是一组操作系统所提供的一种接口,这种接口可以为用户态运行的进程与硬件设施设备发展之间进行信息交互。所以系统调用就是用户进程能够进入内核的接口层,它本身并非内核函数(内涵函数就是在内核中实现的、需要满足内核编程这一条件的函数),但它是由内核函数实现的,进入内核后,不同的系统调用会找到相应的内核函数,这些内核函数被称为系统调用的“服务例程”。简单来说系统调用类似于函数调用,不过所调用的东西是系统函数。鞋柜客户进行系统调用时刻,会传递一个系统调用信号给到内核,而系统调用处理程序收到这个信号后,会根据这个信号在系统调用列表(在这个系统调用表中,每个系统调用都会有自己唯一的一个编号)中找到相对应的内涵函数对其进行调用。 (二)系统调用接口
系统调用是一种特殊的接口,它可以供给到用户程序来调用,系统调用接口相当于一个中介,把用户程序的请求传递给内核,然后再把相应的结果返回到用户程序。当该智能鞋柜的客户通过移动智能管家的操作按钮激活系统调用接口时,控制权就会从应用进行程序传达到控制系统调用接口,再传达到操作管理信息系统。结束之后,控制权返回到应用进程,这个过程就是控制权的来回转换。
(三)应用编程接口
应用编程接口[1],就是在客户控制系统调用之前,该引用程序对它进行编写程序,设置许多被需要的重要参数。这两个程序通过双向通信连接交换数据,通信连接的一端被称为socket(套接字)。我们可以使用socket作为一个应用系统程序发展进程和传输层协议之间的接口,并使用socket与操作运行管理系统信息交互,请求服务。TCP/IP协议被我们用作应用程序的通信,应用程序进程(客户端)发出一个套接字系统调用,用于网络通信。
1.TCP\\IP协议
有些人会将TCP/IP协议简单理解为TCP协议和IP协议,然后并非如此,TCP/IP协议是一个较大的系统体系,包含有很多种协议,被称为协议族。它可以为各种各样的应用提供服务,允许IP协议在各式各样的网络构成的互联网上运行,TCP/IP协议可以说是非常重要的也是最基本的通信协议了,应用非常广泛,其中IP协议具有核心的作用。参考了OSI模型的七层体系,对其进行了改良简化,TCP/IP协议有四层的体系结构:应用层、传输层、网络层、数据链路层,应用层包括HTTP协议、SMTP协议、DNS协议、RTP协议等;运输层有TCP协议、UDP协议等;网际层有IP协议等。
2.系统调用接口与应用编程接口区别
系统调用接口与内核有关,而应用编程接口是函数的定义,是和内核没有关系的。系统调用通过中断向内核发出请求完成所需要的服务,而应用编程接口就是调用至少一个系统调用才能完成相应的功能。客户端的程序员需要先去调用应用编程接口,再让应用编程接口去调用系统调用接口,才能完成程序员间接对应用编程接口的调用。应用编程接口是一种接口专门提供给应用程序的,相当于程序员与系统调用之间的平台。然而并不是每一个应用编程接口的函数都会有一个系统调用,可能需要几个系统调用,也可能不需要系统调用。
(四)基于TCP服务的系统调用
1.TCP协议
TCP是面向连接的协议,它可以提供可靠的通信服务,依赖套接字socket类编写程序[3]。TCP协议确保数据能够完整地从一端传输到另一端,且传输前后的顺序一致。在通信进行过程中,客户端和服务器端系统之间的连接要保持时刻畅通。服务器端程序和客户端程序这两个程序是应用TCP协议进行通信的。
2.socket
Socke即套接字,是一种编程接口也是通信的基础,它是由端口号和IP结合而成的组合,是一种技术操作系统基本单元可以用来支持TCP/IP协议的。两个程序通过双向通信连接实现数据交换,它们其中一个程序的端点就是socket。它组成了整个可以进行网络编程界面,还有主机。是实现通信必不可少的一部分。要实现通信至少需要两个套接字,一个被运用到客户端(Client Socket),一个被用到了服务端(Server Socket)。
实现套接字之间的连接流程可以被分成三部分,首先,由于服务器此时没有办法定位客户端套接字的原因,服务器进入等待连接的状态,进而可以随时监控网络,接受请求;当客户端套接字要开始与服务器套接字连接时,就必须先描述出套接字的形态(即套接字的地址和它的端口号),才可以向服务器套接字请求连接;服务器套接字收到客户端套接字的描述时,就会再次把这个相同的描述传递给到客户端,一旦客户端肯定了这个描述,那么连接就建立好了。然后,服务器就又立即进入了监听的状态来等待下次来自客户端的连接请求。
3.TCP的运输连接管理
连接建立:建立TCP连接采用了客户端—服务器端的方法,客户端与服务器端分别为发送连接和等待连接的应用程序。在还没开始时,TCP客户进程与TCP服务端进程都是closed状态。TCP服务器进程首先建立了TCB(传输控制块),并处于了listen(收听)状态。TCP客户进程在建立了TCB的基础上,想要创建TCP连接时,向服务端发送请求,并且处于了SYNSENT(同步已发送)状况,而TCP服务器端在收到客户发送的请求报文段,也会发送确认给到客户端。TCP客户端在接收到确认报文段,同时向服务端给以确认,服务器端收到后马上进入了ESTABLISHED(已连接)状态。以上是连接的建立。
连接释放:TCP客户进程会主动关闭与TCP服务器进程之间的连接。TCP客户进程先是向TCP服务器进程发送释放连接的报文段,并且停止向TCP服务进程发送数据,然后就会主动的关闭它们之间的连接,进入到了终止等待1。再看TCP服务器进程,它在收到来自TCP客戶进程释放报文段后,会向TCP客户进程发送确认,然后自己会进入到关闭等待的状态。在这个时候,TCP客户进程向TCP服务器进程单方面的连接就此释放掉了,整个连接就进入了半关闭的状态,而此时的TCP客户进程就会进入到了终止等待2。这个时候的TCP服务器进程如果没有数据要向TCP客户进程发送的话,就会向客户进程发送一个通知要求释放连接,随后便位于最后确认状态。TCP客户端进程收到了连接释放报文段后,会发送一个确认给到TCP服务器进程,然后进入时间等待状态。但是为了确保TCP服务器进程能够准确地接收到来自TCP客户端进程的确认,现如今的网络中,TCP客户进程一般会在4分钟之后才进入最终的关闭状态,而对于TCP服务器进程,收到确认之后,才随后进入关闭状态。以上就是TCP连接的释放。 4.系统调用具体过程
建立套接字以后,应用进程调用bind(绑定)来指明本地的端口号以及本地的IP地址。此时:
客户进程:客户进程此时调用connect(连接),与远地服务器建立连接。
服务器进程流程:第一步,服务器需要调用bind来把本地端口号和IP地址绑定到套接字。第二步调用listen,去设置套接字为被动,以便可以接受来自客户的请求信号。第三步,调用accept读取客户端进程发送的连接请求,需要完成很多步骤,处理很多个连接。下面是步骤图解:
我们采用的是并发方式工作的服务器可以同时处理多个连接,来提高整个过程的效率,减少不必要的浪费。可以同时处理多个连接的重要原因是并发式服务器有主服务器进程和從属服务器进程两类,两类服务器进行合作,减少或消除处于不同操作系统下处理文件的不兼容性。从属服务器是由主服务器创建的,在从属服务器与客户进程建立连接的时候,主服务器就可以再次调用原来的套接字接收另外一个连接的请求,这个两类服务器分工合作大大提高了运行的效率。主服务器调用accept处理每个新的连接,为他们创建新的套接字,并返回给客户方这个新的套接字的标识符,而就在这个同时,为了处理接下来即将新建立的连接,主服务器进程创建了一个从服务器进程。而从属服务器在建立新连接的时候使用的新创建的套接字,主服务器则使用原始的套接字重新开始调用accept,等待接收下一个的请求连接。下面是主服务器和从属服务器的运行流程图解:
数据传输的过程中,客户可以使用send发送数据请求给到服务器,服务器随即便使用recv接收请求,同时使用send发送回答给客户,客户用recv接收回答。当客户端和服务器之一最终结束使用套接字时,调用close将释放连接并撤销套接字。以上就是整个管理系统进行调用大概的阶段过程。
三、结语
随着社会的不断发展,智能化的家居更加符合人们的使用要求,目前市面上虽然流传着很多的智能鞋柜产品,但功能较为单一,只拥有杀菌、除臭、除湿等功能。与我们研发的产品相差甚远,在传统鞋柜的基础上,我们增设了智能收纳、智能擦鞋、可拆卸等个性化模块,该管家式智能鞋柜拥有可以远程进行控制的功能,与手机智能管家相结合,用户可通过客户端随时随地对家中的智能鞋柜进行远程操控,掌握鞋柜内部情况,解决了因为长期出差在外或者没有时间管理等而使鞋子受损的问题。本产品利用现代机械优化设计理论和数值分析技术相结合,进一步提高了产品设计的精确性。且该产品的研制面向生活时间紧迫的年轻人群体,节约了家务时间,培养了良好的生活习惯,促进了智能家居行业细分。
参考文献:
[1]谢希仁.计算机网络.电子工业出版社,2017(07):307311.
[2]寺田真敏,萱岛.TCP/IP网络安全篇.科学出版社,2001(01):629.
[3]H.M.Deitel,P.J.Deitel.Java语言程序设计大全.机械工程出版社,1997(01).
项目来源:2019年安庆师范大学质量工程重点教研项目“面向智能制造产业的工业机器人与编程技术课程教学改革与探索”(项目号:2019aqnujyxm11);2020年安徽省高等学校省级质量工程重点教研项目“面向现代产业学院新工科人才协同培养的工业机器人与编程技术课程教学改革与探索”(项目号:2020jyxm1074)
作者简介:李慧云(1999— ),女,安徽阜阳人,本科,研究方向:通信工程。
*通讯作者:查长礼。
关键词:手机智能管家;多功能;客户端;服务端
伴随着现代科技的高速发展,人民生活素质有了很大的改善,人们对智能家居的追求也开始变得严格起来,更倾向于用手机远程操控家里的家居。针对现如今社会上的这种情况,我们团队运用了以PLC为核心处理器的智能家居远程操控信息系统,把手机智能管家与智能鞋柜结合在一起,用户可通过该手机智能管家随时随地对鞋柜里的鞋子进行除尘、通风、杀菌等一系列的操作。此篇文章中,对该管家式智联多功能鞋柜的客户端与服务端进行了较深入的探究。
一、智能鞋柜概述
(一)实现鞋柜辅助功能
与传统的智能鞋柜相比,该鞋柜的用户可通过智能鞋柜的客户端手机智能管家的操作界面进入烘干、杀菌、通风、一键等界面,可随时随地对鞋柜里的鞋子进行烘干、杀菌、通风、一键(一键启动模块可同时启动烘干、杀菌模块工作)等一系列功能的控制。通过点击手机管家界面上相应的图标,将信号传至给下位机——PLC,由PLC控制相对应的模块进行工作。其定时设置默认40min,用户也可自定义烘干、杀菌、除尘等功能的时间,而通过客户端可以随时随地掌握鞋柜内的温度,鞋柜内部温度最低为26℃,较高于环境温度。智能鞋柜内部空间的温度呈现温度梯度。下面是各功能的简单介绍:
(1)杀菌模块:对鞋柜内的鞋子进行杀菌。采用紫外线灯材料,紫外线灯全方位照射鞋子,可杀死99.99%的细菌,进而达到杀菌消毒的效果。
(2)烘干模块:烘干模块材料选用PTC烘干器,保证烘干过程可以在安全可靠的形式下运行,用户可根据自身需求在外部触摸屏和手机智能管家上设定烘干运行时间,并且在鞋柜内部增设温度传感器,可在手机智能管家上显示当前鞋柜内部温度,即用户可随时随地掌握鞋柜内部温度。
(3)通风模块:烘干模块停止运行后,PLC控制通风模块启动,将鞋柜内部少量残余湿气传至带有氧化钙除湿的通风口进行除湿,并及时送入新鲜气体,鞋柜内部增设活性炭除臭机构和滤网除尘机构,随时随地将鞋柜内部异味气体和灰尘除去,达到净化空气效果,进而改善鞋柜内部环境。
(4)一键模块:一键启动模块可同时启动烘干、杀菌模块的工作,这样,不仅可以很好地提高对鞋子处理的效率,而且节约了用户的时间。
(二)实现对鞋子的信息管理
用户点击客户端手机界面中的管理中心的图标,页面跳转后,可选择“添加、查询、统计”三个按键,默认为“添加”界面,添加界面可供用户上传购买的鞋子的款式、颜色、金额以及购买日期,对鞋子进行分类管理;信息库管理查询界面的搜索设置默认为鞋子的款式、颜色、日期,可供用户查看已上传的购买鞋子的信息;统计界面可供用户查看在每月、每年购买鞋子款式和金额所占的比例(以饼图的形式展示给客户),可以帮助用户对鞋子进行管理,查看购买鞋子支出所占的比例,进而减少不必要的消费。
(三)帮助中心
设置:点击手机APP界面中的设置图标,会出现帮助中心的图标,帮助中心的作用就是负责帮助客户进一步了解该智能鞋柜的客户端,帮助中心所弹出的文字:
①烘干:将鞋子湿气祛除,达到将鞋子干燥的效果,系统定时默认为40min,当按下界面的定时键,弹出设定界面,用户可自行定义烘干工作时间。
②杀菌:除去鞋子和鞋柜内的细菌,系统定时默认为40min,用户可自行定义杀菌工作时间。
③一键:一键模块启动可同时将烘干、杀菌模块启动,系统定时默认为40min,用户可自行定义一键中烘干和杀菌的工作时间。
④通风:改善鞋柜内部空气质量,及时送入新鲜空气,用户可自行定义通风工作时间。
⑤管理中心:上传购买鞋子的信息,用户可通过客户端随时随地去查看购买鞋子的信息,进行管理。
二、客户端与服务端的通信
手机可以通过移动通信方式去访问存储家用电器信息的服务器,通过鞋柜客户端即智能手机管家向服务器发送命令,服务器向家用终端发送命令,根据发出的命令控制与其相应的电器。鞋柜通过连接无线模式连入家庭终端,家庭终端是在服务器和鞋柜之间进行连接中非常重要的角色,它起拥有接收与转发的功能,接收是指它接收到一个所来自服务器的指令,将指令转化为信息系统中可识别的无线制式以实现内部控制。该鞋柜的手机智能管家即为客户端,为鞋柜客户提供控制鞋柜内部操作的服务程序,而服务器的作用则是向客户端供应它所需要的资源,客户端用于向用户展示处理后的结果,服务端用于数据的逻辑处理。并且客户端的程序一般不需要编写,只需对服务器端程序进行编写。想要理解客户端与服务端之间的通信,首先我们需要对系统调用和应用编程接口[1]進行了解。
(一)系统调用
首先我们学习系统调用,系统调用就是一组操作系统所提供的一种接口,这种接口可以为用户态运行的进程与硬件设施设备发展之间进行信息交互。所以系统调用就是用户进程能够进入内核的接口层,它本身并非内核函数(内涵函数就是在内核中实现的、需要满足内核编程这一条件的函数),但它是由内核函数实现的,进入内核后,不同的系统调用会找到相应的内核函数,这些内核函数被称为系统调用的“服务例程”。简单来说系统调用类似于函数调用,不过所调用的东西是系统函数。鞋柜客户进行系统调用时刻,会传递一个系统调用信号给到内核,而系统调用处理程序收到这个信号后,会根据这个信号在系统调用列表(在这个系统调用表中,每个系统调用都会有自己唯一的一个编号)中找到相对应的内涵函数对其进行调用。 (二)系统调用接口
系统调用是一种特殊的接口,它可以供给到用户程序来调用,系统调用接口相当于一个中介,把用户程序的请求传递给内核,然后再把相应的结果返回到用户程序。当该智能鞋柜的客户通过移动智能管家的操作按钮激活系统调用接口时,控制权就会从应用进行程序传达到控制系统调用接口,再传达到操作管理信息系统。结束之后,控制权返回到应用进程,这个过程就是控制权的来回转换。
(三)应用编程接口
应用编程接口[1],就是在客户控制系统调用之前,该引用程序对它进行编写程序,设置许多被需要的重要参数。这两个程序通过双向通信连接交换数据,通信连接的一端被称为socket(套接字)。我们可以使用socket作为一个应用系统程序发展进程和传输层协议之间的接口,并使用socket与操作运行管理系统信息交互,请求服务。TCP/IP协议被我们用作应用程序的通信,应用程序进程(客户端)发出一个套接字系统调用,用于网络通信。
1.TCP\\IP协议
有些人会将TCP/IP协议简单理解为TCP协议和IP协议,然后并非如此,TCP/IP协议是一个较大的系统体系,包含有很多种协议,被称为协议族。它可以为各种各样的应用提供服务,允许IP协议在各式各样的网络构成的互联网上运行,TCP/IP协议可以说是非常重要的也是最基本的通信协议了,应用非常广泛,其中IP协议具有核心的作用。参考了OSI模型的七层体系,对其进行了改良简化,TCP/IP协议有四层的体系结构:应用层、传输层、网络层、数据链路层,应用层包括HTTP协议、SMTP协议、DNS协议、RTP协议等;运输层有TCP协议、UDP协议等;网际层有IP协议等。
2.系统调用接口与应用编程接口区别
系统调用接口与内核有关,而应用编程接口是函数的定义,是和内核没有关系的。系统调用通过中断向内核发出请求完成所需要的服务,而应用编程接口就是调用至少一个系统调用才能完成相应的功能。客户端的程序员需要先去调用应用编程接口,再让应用编程接口去调用系统调用接口,才能完成程序员间接对应用编程接口的调用。应用编程接口是一种接口专门提供给应用程序的,相当于程序员与系统调用之间的平台。然而并不是每一个应用编程接口的函数都会有一个系统调用,可能需要几个系统调用,也可能不需要系统调用。
(四)基于TCP服务的系统调用
1.TCP协议
TCP是面向连接的协议,它可以提供可靠的通信服务,依赖套接字socket类编写程序[3]。TCP协议确保数据能够完整地从一端传输到另一端,且传输前后的顺序一致。在通信进行过程中,客户端和服务器端系统之间的连接要保持时刻畅通。服务器端程序和客户端程序这两个程序是应用TCP协议进行通信的。
2.socket
Socke即套接字,是一种编程接口也是通信的基础,它是由端口号和IP结合而成的组合,是一种技术操作系统基本单元可以用来支持TCP/IP协议的。两个程序通过双向通信连接实现数据交换,它们其中一个程序的端点就是socket。它组成了整个可以进行网络编程界面,还有主机。是实现通信必不可少的一部分。要实现通信至少需要两个套接字,一个被运用到客户端(Client Socket),一个被用到了服务端(Server Socket)。
实现套接字之间的连接流程可以被分成三部分,首先,由于服务器此时没有办法定位客户端套接字的原因,服务器进入等待连接的状态,进而可以随时监控网络,接受请求;当客户端套接字要开始与服务器套接字连接时,就必须先描述出套接字的形态(即套接字的地址和它的端口号),才可以向服务器套接字请求连接;服务器套接字收到客户端套接字的描述时,就会再次把这个相同的描述传递给到客户端,一旦客户端肯定了这个描述,那么连接就建立好了。然后,服务器就又立即进入了监听的状态来等待下次来自客户端的连接请求。
3.TCP的运输连接管理
连接建立:建立TCP连接采用了客户端—服务器端的方法,客户端与服务器端分别为发送连接和等待连接的应用程序。在还没开始时,TCP客户进程与TCP服务端进程都是closed状态。TCP服务器进程首先建立了TCB(传输控制块),并处于了listen(收听)状态。TCP客户进程在建立了TCB的基础上,想要创建TCP连接时,向服务端发送请求,并且处于了SYNSENT(同步已发送)状况,而TCP服务器端在收到客户发送的请求报文段,也会发送确认给到客户端。TCP客户端在接收到确认报文段,同时向服务端给以确认,服务器端收到后马上进入了ESTABLISHED(已连接)状态。以上是连接的建立。
连接释放:TCP客户进程会主动关闭与TCP服务器进程之间的连接。TCP客户进程先是向TCP服务器进程发送释放连接的报文段,并且停止向TCP服务进程发送数据,然后就会主动的关闭它们之间的连接,进入到了终止等待1。再看TCP服务器进程,它在收到来自TCP客戶进程释放报文段后,会向TCP客户进程发送确认,然后自己会进入到关闭等待的状态。在这个时候,TCP客户进程向TCP服务器进程单方面的连接就此释放掉了,整个连接就进入了半关闭的状态,而此时的TCP客户进程就会进入到了终止等待2。这个时候的TCP服务器进程如果没有数据要向TCP客户进程发送的话,就会向客户进程发送一个通知要求释放连接,随后便位于最后确认状态。TCP客户端进程收到了连接释放报文段后,会发送一个确认给到TCP服务器进程,然后进入时间等待状态。但是为了确保TCP服务器进程能够准确地接收到来自TCP客户端进程的确认,现如今的网络中,TCP客户进程一般会在4分钟之后才进入最终的关闭状态,而对于TCP服务器进程,收到确认之后,才随后进入关闭状态。以上就是TCP连接的释放。 4.系统调用具体过程
建立套接字以后,应用进程调用bind(绑定)来指明本地的端口号以及本地的IP地址。此时:
客户进程:客户进程此时调用connect(连接),与远地服务器建立连接。
服务器进程流程:第一步,服务器需要调用bind来把本地端口号和IP地址绑定到套接字。第二步调用listen,去设置套接字为被动,以便可以接受来自客户的请求信号。第三步,调用accept读取客户端进程发送的连接请求,需要完成很多步骤,处理很多个连接。下面是步骤图解:
我们采用的是并发方式工作的服务器可以同时处理多个连接,来提高整个过程的效率,减少不必要的浪费。可以同时处理多个连接的重要原因是并发式服务器有主服务器进程和從属服务器进程两类,两类服务器进行合作,减少或消除处于不同操作系统下处理文件的不兼容性。从属服务器是由主服务器创建的,在从属服务器与客户进程建立连接的时候,主服务器就可以再次调用原来的套接字接收另外一个连接的请求,这个两类服务器分工合作大大提高了运行的效率。主服务器调用accept处理每个新的连接,为他们创建新的套接字,并返回给客户方这个新的套接字的标识符,而就在这个同时,为了处理接下来即将新建立的连接,主服务器进程创建了一个从服务器进程。而从属服务器在建立新连接的时候使用的新创建的套接字,主服务器则使用原始的套接字重新开始调用accept,等待接收下一个的请求连接。下面是主服务器和从属服务器的运行流程图解:
数据传输的过程中,客户可以使用send发送数据请求给到服务器,服务器随即便使用recv接收请求,同时使用send发送回答给客户,客户用recv接收回答。当客户端和服务器之一最终结束使用套接字时,调用close将释放连接并撤销套接字。以上就是整个管理系统进行调用大概的阶段过程。
三、结语
随着社会的不断发展,智能化的家居更加符合人们的使用要求,目前市面上虽然流传着很多的智能鞋柜产品,但功能较为单一,只拥有杀菌、除臭、除湿等功能。与我们研发的产品相差甚远,在传统鞋柜的基础上,我们增设了智能收纳、智能擦鞋、可拆卸等个性化模块,该管家式智能鞋柜拥有可以远程进行控制的功能,与手机智能管家相结合,用户可通过客户端随时随地对家中的智能鞋柜进行远程操控,掌握鞋柜内部情况,解决了因为长期出差在外或者没有时间管理等而使鞋子受损的问题。本产品利用现代机械优化设计理论和数值分析技术相结合,进一步提高了产品设计的精确性。且该产品的研制面向生活时间紧迫的年轻人群体,节约了家务时间,培养了良好的生活习惯,促进了智能家居行业细分。
参考文献:
[1]谢希仁.计算机网络.电子工业出版社,2017(07):307311.
[2]寺田真敏,萱岛.TCP/IP网络安全篇.科学出版社,2001(01):629.
[3]H.M.Deitel,P.J.Deitel.Java语言程序设计大全.机械工程出版社,1997(01).
项目来源:2019年安庆师范大学质量工程重点教研项目“面向智能制造产业的工业机器人与编程技术课程教学改革与探索”(项目号:2019aqnujyxm11);2020年安徽省高等学校省级质量工程重点教研项目“面向现代产业学院新工科人才协同培养的工业机器人与编程技术课程教学改革与探索”(项目号:2020jyxm1074)
作者简介:李慧云(1999— ),女,安徽阜阳人,本科,研究方向:通信工程。
*通讯作者:查长礼。