The invention discloses a method for automatic and reliable communication of a simulation system. The network communications code encapsulated into a class, so each subsystem simulation in the system can conveniently realize reliable communication through the object of the class; the positive effect of the invention is that reliable communication makes the packet is received only once, can't repeat receiving and not receiving or not order; it has reliability of TCP transmission, and overcomes TCP packet transmission needs to be identified shortcomings at the receiving end; it does not need to communicate like that because the TCP transmission; system simulation in the system is independent of operation, in the operation of one or more subsystems may restart, so the relationship between communication the last run to restore.
【技术实现步骤摘要】
本专利技术涉及仿真系统通信
,特别是涉及一种仿真系统自动同步可靠通信方法。
技术介绍
在飞行模拟器仿真、电站仿真等大型仿真系统由若干子系统组成,在子系统需要解决网络通信问题。网络通信的信息主要包括两种情况:对于周期性变化且信息状态具有连续特征的信息,可以采用周期性的数据报非可靠传输方式,如飞机位置信息;但对于信息状态具有瞬时性特征的信息,如短暂的射击状态信息,如果采用数据报非可靠传输方式在周期性发送数据包中传输,则如果数据包在传输中丢失,则在下一个传输周期到来时,飞机已由射击状态转为正常状态,射击状态将不可能为其它子系统收到。类似此类的具有瞬时性特征的仿真实体的状态信息,应该与具有连续特征的仿真实体的状态信息分开,采用可靠传输方式进行传输。此外,例如控制台对仿真实体的状态进行配置等仿真管理信息,属于事件型信息,更适合于采用可靠传输方式。目前在仿真系统中普遍采用的可靠传输方式是采用TCP协议。这种方式使用不够方便,主要表现在以下几个方面:一是TCP传输是面向字节流的,在发送端发送的若干数据包是连接在一起一个流的形式传输,因而在接收端必须由用户识别出的数据包的边界;二是TCP传输是面向连接的,在传输前需要首先建立连接;三是仿真系统内的各子系统是自主运行的,在运行中某个或某些子系统可能会重新启动,此时TCP传输无法恢复上次运行时的通信连接,使通信无法进行。本专利技术给出了一种解决以上问题的方法。
技术实现思路
本专利技术的目的是公开一种仿真系统自动同步可靠通信方法,将网络通信代码封装到一个类中,使仿真系统内的各子系统可以通过该类的对象来方便地实现可靠通信;这 ...
【技术保护点】
一种仿真系统自动同步可靠通信方法,包括若干台通过以太网连接的计算机(成为主机),每台主机上运行一个或多个进程,其特征在于, 包括一个类UdpLink;相互通信的两个进程通过在各自的进程空间内创建两个互相匹配的所述类UdpLink的对象进行通信;所述匹配由这两个对象的初始化参数来保证;所述两个对象在所述进程间建立起一个逻辑通信信道;相互通信的两个进程使用各自对象的Send操作发送数据、使用第一对象的Recv操作接收数据;所述类UdpLink的对象具有自动同步功能,即当所述相互通信的两个进程或其中之一重新启动后,两个进程之间仍可继续实现通信;一个进程可以通过所述类UdpLink的N(N>1)个对象与一个或多个其它进程建立起N个逻辑通信信道。
【技术特征摘要】
1.一种仿真系统自动同步可靠通信方法,包括若干台通过以太网连接的计算机(成为主机),每台主机上运行一个或多个进程,其特征在于,包括一个类UdpLink;相互通信的两个进程通过在各自的进程空间内创建两个互相匹配的所述类UdpLink的对象进行通信;所述匹配由这两个对象的初始化参数来保证;所述两个对象在所述进程间建立起一个逻辑通信信道;相互通信的两个进程使用各自对象的Send操作发送数据、使用第一对象的Recv操作接收数据;所述类UdpLink的对象具有自动同步功能,即当所述相互通信的两个进程或其中之一重新启动后,两个进程之间仍可继续实现通信;一个进程可以通过所述类UdpLink的N(N>1)个对象与一个或多个其它进程建立起N个逻辑通信信道。2.根据权利要求1所述的一种仿真系统自动同步可靠通信方法,其特征在于,所述类UdpLink实现如下构造函数:UdpLink(constchar*localIp,unsignedshortlocalPort,constchar*remoteIp,unsignedshortremotePort);其中,localIp是本地ip地址,十进制点字符串标准格式;localPort是本地端口号,以主机序表示;remoteIp是远程ip地址,十进制点字符串标准格式;remotePort是本地端口号,以主机序表示;与localIp,localPort,remoteIp,remotePort等价的信息被存储;被存储的与localIp和localPort等价的信息表示为(localIp,localPort);被存储的与remoteIp和remotePort等价的信息表示为(remoteIp,remotePort)。3.根据权利要求2所述的一种仿真系统自动同步可靠通信方法,其特征在于,所述匹配由这两个对象的初始化参数来保证的具体做法是:1)第一进程创建的所述类UdpLink的第一对象按如下形式调用所述构造函数完成初始化操作:UdpLink(第一进程所在的主机上配置的第一ip地址,第一端口号,第二进程所在的主机上配置的第二ip地址,第二端口号);2)第二进程创建的所述类UdpLink的第二对象按如下形式调用所述构造函数完成初始化操作:UdpLink(第二进程所在的主机上配置的第二ip地址,第二端口号,第一进程所在的主机上配置的第一ip地址,第一端口号)。4....
【专利技术属性】
技术研发人员:张志春,张继夫,肖景新,赵秀影,步健,赵振鹏,
申请(专利权)人:中国人民解放军空军航空大学军事仿真技术研究所,
类型:发明
国别省市:吉林;22
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。