CN106549956B - 一种udp和tcp相互结合的局域网通信方法 - Google Patents
一种udp和tcp相互结合的局域网通信方法 Download PDFInfo
- Publication number
- CN106549956B CN106549956B CN201610946075.8A CN201610946075A CN106549956B CN 106549956 B CN106549956 B CN 106549956B CN 201610946075 A CN201610946075 A CN 201610946075A CN 106549956 B CN106549956 B CN 106549956B
- Authority
- CN
- China
- Prior art keywords
- controlled end
- information
- equipment
- tcp
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Abstract
本发明公开一种UDP和TCP相互结合的局域网通信方法包括步骤:S1、控制端设备与受控端设备建立TCP连接,建立设备信息列表;S2、UDP广播器发出控制指令并建立临时表,接收控制指令,受控端设备响应动作并返回确认信息;S3、判断UDP广播器是否收到所有确认信息,如果是,则执行S7;否则,则执行S4;S4、控制端TCP客户端连接受控端TCP服务器,补发S2中的控制指令;S5、判断控制指令是否成功发送,如果是,则执行S7,否则,执行S6;S6、更新受控端设备的状态信息为离线,执行S8;S7、更新受控端设备的状态信息为在线,执行S8;S8、删除临时表,一次群控通讯完成。本发明的方法既能保证快速及时的发送并执行控制指令,又可以提高可靠性。
Description
技术领域
本发明涉及局域网通信技术领域,特别是涉及一种UDP和TCP相互结合的局域网通信方法。
背景技术
目前,无线物联网正在蓬勃发展,可以通过无线Wifi不需要物理布线就可以快速地组建好网络。而在某些情况下,管理人员在某一时刻需要对其网络中相同的设备作出相同操作。比如,对网络中的灯同时作出开关、改变颜色;又如对音响同时播放或者通知等动作。对这一需求目前大多采用以下三种方式来实现:
1、控制端与每个受控设备分别建立TCP通信,发送指令控制。优点:可靠的控制一个受控设备。缺点:当存在多个受控设备时,第一个受控设备接收到指令的时间和最后一个受控设备接收到相同指令的时间具有一定的延时性,明显让人感觉不同步。
2、如果用多线程并发建立TCP通信,虽然可以达到及时可靠,但是对硬件要求较高,比如有100个受控设备,就要建立100个线程。而通常情况下控制端是做到嵌入式设备上,这对于嵌入式设备而言显然不可行。
3、控制端UDP广播,每个受控设备接收UDP广播之后相应其动作。优点:快速,能及时同步相应。缺点:UDP通信既不安全、也不可靠,不能保证每个受控设备都能接收到每次广播的控制指令。
发明内容
本发明的目的是克服现有技术中的不足之处,提供一种UDP和TCP相互结合的局域网通信方法。
本发明的目的是通过以下技术方案来实现的:
一种UDP和TCP相互结合的局域网通信方法,所述局域网通信方法基于一个控制端设备及若干个受控端设备,包括步骤:
S1、控制端设备建立控制端TCP服务器、UDP广播器;受控端设备建立受控端TCP服务器、UDP服务器;
所述控制端设备通过所述控制端TCP服务器与所述受控端设备建立TCP连接,并建立设备信息列表;
S2、所述UDP广播器发出控制指令并建立临时表,当受控端设备的UDP服务器接收到所述控制指令时,受控端设备根据控制指令响应动作并向所述UDP广播器返回确认信息;
S3、在预设时间内,判断所述UDP广播器是否收到所有受控端设备的确认信息,如果收到所有确认信息,则执行步骤S7;如果没有收到所有确认信息,则执行步骤S4;
S4、所述控制端设备建立控制端TCP客户端,所述控制端TCP客户端连接未收到确认信息的受控端设备的受控端TCP服务器,补发步骤S2中的控制指令,
S5、判断所述控制指令是否成功发送给受控端TCP服务器,如果成功发送,则执行步骤S7,否则,执行步骤S6;
S6、确定未成功发送控制指令的受控端设备的设备信息,更新受控端设备在设备列表中的状态信息为离线,执行步骤S8;
S7、确定成功收到控制指令的受控端设备的设备信息,更新受控端设备在设备列表中的状态信息为在线,执行步骤S8;
S8、删除临时表,一次群控通讯完成。
作为进一步优选的方案,所述步骤S1的控制端设备与受控端设备建立TCP连接之前还包括步骤:一个所述控制端设备和若干个所述受控端设备加入同一个局域网。
作为进一步优选的方案,所述步骤S1中,控制端设备与受控端设备建立TCP连接的步骤具体为:所述受控端设备建立受控端TCP客户端,所述受控端TCP客户端每隔预定时间向所述控制端TCP服务器上报当前的设备信息。
作为进一步优选的方案,所述步骤S1中,建立设备信息列表的步骤具体为:所述控制端TCP服务器接收设备信息并建立设备信息列表;所述设备信息列表用于记录所述受控端设备的设备信息以及上报设备信息的时间。
作为进一步优选的方案,所述预定时间为0.1s~0.5s。
作为进一步优选的方案,所述步骤S2中,所述UDP广播器发出控制指令并建立临时表的步骤具体为:所述控制端设备的UDP广播器根据设备信息建立临时表,所述临时表用于记录临时信息和所述UDP服务器返回的确认信息。
作为进一步优选的方案,所述步骤S1中的设备信息包括IP地址、MAC地址、名称、状态信息。
作为进一步优选的方案,所述临时表的临时信息包括MAC地址、确认信息。
作为进一步优选的方案,所述步骤S3中的预设时间为0.2s~0.5s。
作为进一步优选的方案,所述确认信息为ACK。
本发明相比于现有技术的优点及有益效果如下:
本发明结合利用UDP广播的快速、及时以及TCP的可靠性来实现。首先控制端设备用UDP广播器发出控制指令;受控端设备接收并响应该控制指令,同时回复确认信息,当控制端设备没有接收到确认信息时,再建立TCP点到点的连接并发送刚才失败的控制指令。通常情况下广播的指令受控设备都能及时收到,如果全部收到,那么就不在建立TCP通信,偶尔会出现少部分控制设备收不到广播,这时才用TCP去发控制指令给这一部分设备。所以这样的通信方式既能保证快速及时,又可以提高可靠性。
附图说明
图1为本发明一种UDP和TCP相互结合的局域网通信方法的流程图;
图2为本发明一种UDP和TCP相互结合的局域网通信方法的原理框图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施方式。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反地,提供这些实施方式的目的是使对本发明的公开内容理解的更加透彻全面。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的,并不表示是唯一的实施方式。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例一
请参阅图1,一种UDP和TCP相互结合的局域网通信方法10,所述局域网通信方法基于一个控制端设备及若干个受控端设备,包括步骤:
S1、控制端设备建立控制端TCP服务器、UDP广播器;受控端设备建立受控端TCP服务器、UDP服务器;
所述控制端设备通过所述控制端TCP服务器与所述受控端设备建立TCP连接,并建立设备信息列表;
S2、所述UDP广播器发出控制指令并建立临时表,当受控端设备的UDP服务器接收到所述控制指令时,受控端设备根据控制指令响应动作并向所述UDP广播器返回确认信息;
S3、在预设时间内,判断所述UDP广播器是否收到所有受控端设备的确认信息,如果收到所有确认信息,则执行步骤S7;如果没有收到所有确认信息,则执行步骤S4;
S4、所述控制端设备建立控制端TCP客户端,所述控制端TCP客户端连接未收到确认信息的受控端设备的受控端TCP服务器,补发步骤S2中的控制指令,
S5、判断所述控制指令是否成功发送给受控端TCP服务器,如果成功发送,则执行步骤S7,否则,执行步骤S6;
S6、确定未成功发送控制指令的受控端设备的设备信息,更新受控端设备在设备列表中的状态信息为离线,执行步骤S8;
S7、确定成功收到控制指令的受控端设备的设备信息,更新受控端设备在设备列表中的状态信息为在线,执行步骤S8;
S8、删除临时表,一次群控通讯完成。
在本实施例中,所述步骤S1的控制端设备与受控端设备建立TCP连接之前还包括步骤:一个所述控制端设备和若干个所述受控端设备加入同一个局域网。
所述步骤S1中,控制端设备与受控端设备建立TCP连接的步骤具体为:所述受控端设备建立受控端TCP客户端,所述受控端TCP客户端每隔预定时间向所述控制端TCP服务器上报当前的设备信息。
所述步骤S1中,建立设备信息列表的步骤具体为:所述控制端TCP服务器接收设备信息并建立设备信息列表;所述设备信息列表用于记录所述受控端设备的设备信息以及上报设备信息的时间。所述预定时间为0.1s~0.5s。优选的预定时间为0.3s。所述步骤S1中的设备信息包括IP地址、MAC地址、名称、状态信息。
所述步骤S2中,所述UDP广播器发出控制指令并建立临时表的步骤具体为:所述控制端设备的UDP广播器根据设备信息建立临时表,所述临时表用于记录临时信息和所述UDP服务器返回的确认信息。所述步骤S3中的确认信息包括MAC地址和确认信息。所述临时表的临时信息包括MAC地址、确认信息。所述确认信息为ACK。
所述步骤S3中的预设时间为0.2s~1s。所述步骤S3中的预设时间为0.4s~0.8s。在本实施例中,优选的一定时间为0.5s。
工作过程:
准备工作:控制端设备建立控制端TCP服务器、UDP广播器;受控端设备建立受控端TCP服务器、UDP服务器。
通信方式:控制端设备和受控端设备加入同一个局域网内,受控端设备建立受控端TCP客户端,并且,受控端TCP客户端每隔0.3s向控制端TCP服务器上报当前的设备信息,设备信息包括IP地址、MAC地址、名称等,名称为受控设备的名称。请参阅图2,一种UDP和TCP相互结合的局域网通信方法的原理框图。这里要说明的是,本实施例有两个受控端设备(第一受控端设备和第二受控端设备),所以两个受控端设备的受控端TCP客户端均会每隔0.3s向控制端TCP服务器上报当前自己的IP地址、MAC地址、名称等。
控制端设备收到设备信息后,再建立设备信息列表,在该设备信息列表中包括了两个受控端设备的设备信息以及两个受控端设备最后一次上报设备信息的时间,也可以根据这两个时间来分别判断受控端设备是在线状态还是在离线状态。
当控制端设备发出控制指令给受控端设备之前,首先根据每个受控端设备的设备信息列表信息建立一个临时表,在临时表中含有每个受控端设备的MAC地址,然后,控制端设备的UDP广播器将发出控制指令,而由于两个受控端设备同样也在局域网中,所以两个受控端设备都会通过UDP服务器接收到UDP广播器发出的控制指令,并且响应控制指令的动作,同时,UDP服务器向UDP广播器发送MAC地址和确认信息表示确认收到控制指令。当UDP广播器收到MAC地址和确认信息后,控制端设备在临时表的对应MAC地址处增加确认信息。第一受控端设备的MAC地址处增加第一受控端设备的确认信息,第二受控端设备的MAC地址处增加第二受控端设备的确认信息。
当在预定时间内,比如在0.5s的时间范围内,如果控制端设备接收到所有受控端设备的确认信息,则说明所有受控端设备已经响应设备动作,则确定成功收到控制指令的受控端设备的设备信息,更新受控端设备在设备列表中的状态为信息在线,删除临时表;如果控制端设备没有接收到所有受控端设备的确认信息,则认为有受控端设备没有接收到控制指令,并且受控端设备也没有响应动作。此时控制端设备再建立控制端TCP客户端,控制端TCP客户端连接受控端设备的受控端TCP服务器,连接之后,再发送刚刚那条失败的控制指令,如果受控端设备成功接收控制指令并响应动作,则确认成功收到控制指令的受控端设备的设备信息,更新受控端设备在设备列表中的状态信息为在线,如果受控端设备没有接收控制指令并响应动作,确定未成功发送控制指令的受控端设备的设备信息,更新受控端设备在设备列表中的状态信息为离线,最后再删除临时表,完成一次群控通讯。
例如,如果是第一受控端设备没有返回确认信息,那么控制端设备将认为第一受控端设备没有接收到控制指令,第一受控端设备也没有执行受控指令的动作。那么再根据第一受控端设备的MAC地址查询对应的IP地址,控制端设备再建立控制端TCP客户端,控制端TCP客户端连接第一受控端设备的受控端TCP服务器,连接之后,再发送刚刚那条失败的控制指令,如果第一受控端设备成功接收控制指令并响应动作,则确认第一受控端设备的设备信息,更新第一受控端设备在设备列表中的状态信息为在线;如果第一受控端设备没有接收控制指令并响应动作,确定第一受控端设备的设备信息,更新受控端设备在设备列表中的状态信息为离线,最后再删除临时表,完成一次群控通讯。
本发明结合利用UDP广播的快速、及时以及TCP的可靠性来实现。首先控制端设备用UDP广播器发出控制指令;受控端设备接收并响应该控制指令,同时回复确认信息,当控制端设备没有接收到确认信息时,再建立TCP点到点的连接并发送刚才失败的控制指令。通常情况下广播的指令受控设备都能及时收到,如果全部收到,那么就不在建立TCP通信,偶尔会出现少部分控制设备收不到广播,这时才用TCP去发控制指令给这一部分设备。所以这样的通信方式既能保证快速及时,又可以提高可靠性。
以上实施方式仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种UDP和TCP相互结合的局域网通信方法,其特征在于,所述局域网通信方法基于一个控制端设备及若干个受控端设备,包括步骤:
S1、控制端设备建立控制端TCP服务器、UDP广播器;受控端设备建立受控端TCP服务器、UDP服务器;
所述控制端设备通过所述控制端TCP服务器与所述受控端设备建立TCP连接,并建立设备信息列表;
其中,建立设备信息列表的步骤具体为:所述控制端TCP服务器接收设备信息并建立设备信息列表;所述设备信息列表用于记录所述受控端设备的设备信息以及上报设备信息的时间;
S2、所述UDP广播器发出控制指令并建立临时表,当受控端设备的UDP服务器接收到所述控制指令时,受控端设备根据控制指令响应动作并向所述UDP广播器返回确认信息;
S3、在预设时间内,判断所述UDP广播器是否收到所有受控端设备的确认信息,如果收到所有确认信息,则执行步骤S7;如果没有收到所有确认信息,则执行步骤S4;
S4、所述控制端设备建立控制端TCP客户端,所述控制端TCP客户端连接未收到确认信息的受控端设备的受控端TCP服务器,补发步骤S2中的控制指令;
S5、判断所述控制指令是否成功发送给受控端TCP服务器,如果成功发送,则执行步骤S7,否则,执行步骤S6;
S6、确定未成功发送控制指令的受控端设备的设备信息,更新受控端设备在设备列表中的状态信息为离线,执行步骤S8;
S7、确定成功收到控制指令的受控端设备的设备信息,更新受控端设备在设备列表中的状态信息为在线,执行步骤S8;
S8、删除临时表,一次群控通讯完成。
2.根据权利要求1所述的UDP和TCP相互结合的局域网通信方法,其特征在于,所述步骤S1的控制端设备与受控端设备建立TCP连接之前还包括步骤:一个所述控制端设备和若干个所述受控端设备加入同一个局域网。
3.根据权利要求1所述的UDP和TCP相互结合的局域网通信方法,其特征在于,所述步骤S1中,控制端设备与受控端设备建立TCP连接的步骤具体为:所述受控端设备建立受控端TCP客户端,所述受控端TCP客户端每隔预定时间向所述控制端TCP服务器上报当前的设备信息。
4.根据权利要求3所述的UDP和TCP相互结合的局域网通信方法,其特征在于,所述预定时间为0.1s~0.5s。
5.根据权利要求3所述的UDP和TCP相互结合的局域网通信方法,其特征在于,所述步骤S2中,所述UDP广播器发出控制指令并建立临时表的步骤具体为:所述控制端设备的UDP广播器根据设备信息建立临时表,所述临时表用于记录临时信息和所述UDP服务器返回的确认信息。
6.根据权利要求1所述的UDP和TCP相互结合的局域网通信方法,其特征在于,所述步骤S1中的设备信息包括IP地址、MAC地址、名称、状态信息。
7.根据权利要求6所述的UDP和TCP相互结合的局域网通信方法,其特征在于,所述临时表的临时信息包括MAC地址、确认信息。
8.根据权利要求1所述的UDP和TCP相互结合的局域网通信方法,其特征在于,所述步骤S3中的预设时间为0.2s~0.5s。
9.根据权利要求5或7所述的UDP和TCP相互结合的局域网通信方法,其特征在于,所述确认信息为ACK。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610946075.8A CN106549956B (zh) | 2016-11-02 | 2016-11-02 | 一种udp和tcp相互结合的局域网通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610946075.8A CN106549956B (zh) | 2016-11-02 | 2016-11-02 | 一种udp和tcp相互结合的局域网通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106549956A CN106549956A (zh) | 2017-03-29 |
CN106549956B true CN106549956B (zh) | 2019-12-24 |
Family
ID=58393805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610946075.8A Active CN106549956B (zh) | 2016-11-02 | 2016-11-02 | 一种udp和tcp相互结合的局域网通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106549956B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110048991B (zh) * | 2018-01-16 | 2022-09-30 | 北京京东乾石科技有限公司 | 一种信号交互可靠性的实现方法和装置 |
CN111935235A (zh) * | 2020-07-13 | 2020-11-13 | 杭州鸿雁电器有限公司 | 设备的控制方法、系统、装置、存储介质和处理器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1697354A (zh) * | 2005-06-17 | 2005-11-16 | 顾红波 | 用组播和单播协议可靠传输数据的方法及接收数据的主机 |
CN105187247A (zh) * | 2015-09-11 | 2015-12-23 | 浪潮集团有限公司 | 基于tcp和udp混合协议的远程控制软件的实现方法 |
CN105991377A (zh) * | 2015-01-28 | 2016-10-05 | 中国科学院声学研究所 | 通用即插即用UPnP设备之间发现与通信的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8825816B2 (en) * | 2007-10-24 | 2014-09-02 | Lantronix, Inc. | Various methods and apparatuses for a central management station for automatic distribution of configuration information to remote devices |
-
2016
- 2016-11-02 CN CN201610946075.8A patent/CN106549956B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1697354A (zh) * | 2005-06-17 | 2005-11-16 | 顾红波 | 用组播和单播协议可靠传输数据的方法及接收数据的主机 |
CN105991377A (zh) * | 2015-01-28 | 2016-10-05 | 中国科学院声学研究所 | 通用即插即用UPnP设备之间发现与通信的方法 |
CN105187247A (zh) * | 2015-09-11 | 2015-12-23 | 浪潮集团有限公司 | 基于tcp和udp混合协议的远程控制软件的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106549956A (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9906935B2 (en) | Bluetooth low energy beacon device and advertising method | |
CN109617731A (zh) | 一种多网关环境下自适应的网关角色配置方法及装置 | |
US8189545B2 (en) | Wireless communication system, wireless LAN access point and settings confirmation/change method used therefor | |
CN104113458A (zh) | 一种移动终端与智能家电设备互联的方法及装置 | |
CN105652675A (zh) | 一种智能家居设备的控制方法、装置、终端及系统 | |
EP3229420A1 (en) | Method for establishing persistent connection between multiple smart devices and server, and smart device | |
US10630551B2 (en) | Method and apparatus for automatic networking of gateway device | |
CN107317768B (zh) | 流量调度方法及装置 | |
CN110557448A (zh) | 一种智能家居的控制方法及系统 | |
US8650333B2 (en) | Method and apparatus for device control system for load monitoring by performing transmission of state notification of devices individually | |
CN107969026B (zh) | 在无线局域网中实现无线投屏的方法和无线控制器ac | |
CN101883158A (zh) | 获取虚拟局域网标识和网络协议地址的方法及客户端 | |
CN103873472A (zh) | 一种自动连接网络的方法 | |
US10362618B2 (en) | Communication system, communication device, and method for reconnecting communication system | |
CN111930020B (zh) | 设备控制系统、方法、装置、终端及可读存储介质 | |
CN106341483B (zh) | 一种基于局域网多播组的分布式调度系统通信方法 | |
US20160029457A1 (en) | Zigbee lighting control apparatus and method | |
CN106549956B (zh) | 一种udp和tcp相互结合的局域网通信方法 | |
CN106101297B (zh) | 一种报文应答方法及装置 | |
CN107645570A (zh) | 客户端上线方法及装置 | |
CN107135121B (zh) | 一种网络节点的切换方法及装置 | |
KR101472426B1 (ko) | 중계 서버 및 중계 통신 시스템 | |
US9385990B2 (en) | Relay server and relay communication system | |
EP2811694A1 (en) | Method and apparatus for transmitting and receiving service in wireless communication system | |
US8732289B2 (en) | Method, apparatus, and system for controlling execution of an automatic process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |