CN103067269B - 一种联机通信的方法和系统 - Google Patents
一种联机通信的方法和系统 Download PDFInfo
- Publication number
- CN103067269B CN103067269B CN201210592905.3A CN201210592905A CN103067269B CN 103067269 B CN103067269 B CN 103067269B CN 201210592905 A CN201210592905 A CN 201210592905A CN 103067269 B CN103067269 B CN 103067269B
- Authority
- CN
- China
- Prior art keywords
- data
- host
- mobile device
- module
- data packet
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004891 communication Methods 0.000 title claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 114
- 230000005540 biological transmission Effects 0.000 claims description 42
- 238000006243 chemical reaction Methods 0.000 claims description 23
- 238000001514 detection method Methods 0.000 claims description 16
- 238000012856 packing Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 12
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 230000001960 triggered effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 42
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/10—Scheduling measurement reports ; Arrangements for measurement reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种联机通信的方法和系统,该系统包括移动设备、主机和外部设备,该方法包括以下步骤:主机获取用户数据,根据用户数据生成网络数据包,将生成的网络数据包发送给所述移动设备;移动设备对接收到的网络数据包进行解析,将解析得到的有效数据转换为相应的指令;所述移动设备对所述指令进行编码,将编码得到的第一编码数据发送给所述外部设备;所述外部设备对接收到的所述第一编码数据进行解码,根据解码得到的指令进行相应的处理,对得到的处理结果进行编码,将编码得到的第二编码数据发送给所述移动设备。上述技术方案能够实现在主机端对外部设备进行调试的目的,提高了对外部设备进行调试的工作效率。<!--1-->
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种联机通信的方法和系统。
背景技术
iOS(苹果操作系统)设备是使用iOS作为其操作系统的设备,包括iPhone、iPad、iPodTouch以及AppleTV等苹果产品,Android(安卓)设备是使用Android作为其操作系统的设备。随着iOS设备和Android设备的迅速普及,对iOS设备和Android设备的外部设备的使用也日益增多。目前,iOS设备和Android设备的外部设备的调试,通常是使用开发环境进行直接联调的。
发明人在实行本发明的过程中,发现现有技术至少存在以下缺陷:
由于iOS设备和Android设备分别使用iOS和Android作为其操作系统,而上述两种操作系统的专用性较强,且没有开发工具可以使用,因而导致对iOS设备上的外部设备和Android设备上的外部设备的调试过程非常繁琐,效率也非常低。
发明内容
本发明提供了一种联机通信的方法和系统,用以解决现有技术中调试外部设备繁琐的问题。
本发明提供了一种联机通信的方法,应用于包括移动设备、主机和外部设备的系统中,所述方法包括以下步骤:
A1、主机获取用户数据;
A2、所述主机根据所述用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包;
A3、所述主机将所述网络数据包发送给所述移动设备;
A4、所述移动设备对接收到的网络数据包进行解析;
A5、所述移动设备将解析得到的有效数据转换为相应的指令;
A6、所述移动设备对所述指令进行编码;
A7、所述移动设备将编码得到的第一编码数据发送给所述外部设备;
A8、所述外部设备对接收到的所述第一编码数据进行解码,根据解码得到的指令进行相应的处理;
A9、所述外部设备对得到的处理结果进行编码;
A10、所述外部设备将编码得到的第二编码数据发送给所述移动设备;
A11、所述移动设备对接收到的所述第二编码数据进行解码,得到所述处理结果;
A12、所述移动设备判断所述处理结果是否正确,如果正确,则执行步骤A13;否则,执行步骤A15;
A13、所述移动设备将所述处理结果中的有效数据转换为与所述用户数据格式相同的数据;
A14、所述移动设备根据转换得到的数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,将生成的网络数据包发送给所述主机,并执行步骤A16;
A15、所述移动设备根据所述处理结果、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,并将生成的网络数据包发送给所述主机;
A16、所述主机对接收到的网络数据包进行解析;
A17、所述主机显示解析结果。
优选地,所述主机获取用户数据之后,还包括:
所述主机判断所述用户数据中是否包含预设字符;
所述主机根据所述用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,将所述网络数据包发送给所述移动设备,具体为:
当所述用户数据中包含预设字符时,所述主机根据所述预设字符在所述用户数据中的位置,将所述用户数据拆分成多个数据段,从拆分得到的数据段中选取一个未被处理的数据段,根据选取的数据段、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,将生成的网络数据包发送给所述移动设备;
当所述用户数据中不包含预设字符时,所述主机根据所述用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,将所述网络数据包发送给所述移动设备;
所述主机对接收到的网络数据包进行解析,显示解析结果之后,还包括:
所述主机判断所述拆分得到的数据段中是否存在未被处理的数据段,如果是,则从所述拆分得到的数据段中,选取一个未被处理的数据段,根据选取的数据段、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,将生成的网络数据包发送给所述移动设备,并返回步骤A4;否则,结束流程。
优选地,所述指令为应用协议数据单元APDU指令。
优选地,所述主机将生成的网络数据包发送给所述移动设备之前,还包括:
所述移动设备监听预设端口,在监听到所述主机向所述预设端口发起连接请求时,创建与所述主机对应的连接描述符,建立与所述主机之间的连接;
所述主机将生成的网络数据包发送给所述移动设备,具体为:
所述主机根据所述连接描述符,向所述移动设备发送所述网络数据包;
所述移动设备将生成的网络数据包发送给所述主机,具体为:
所述移动设备根据所述连接描述符,向所述主机发送所述网络数据包。
优选地,所述移动设备建立与所述主机之间的连接之前,还包括:
所述主机根据所述移动设备的IP地址以及所述预设端口的端口号,向所述移动设备发起连接请求。
优选地,所述移动设备根据所述连接描述符,向所述主机发送所述网络数据包,具体为:
所述移动设备将所述连接描述符、所述网络数据包以及所述网络数据包的长度作为参数,调用send函数,向所述主机发送所述网络数据包。
优选地,所述移动设备将解析得到的有效数据转换为相应的指令,具体为:
所述移动设备将所述解析得到的有效数据由NSData型数据转换为对应的NSString型数据,将所述NSString型数据强转为对应的char*型数据,并调用StrToHex函数,将所述char*型数据转换为对应的byte型数据,将所述byte型数据作为转换得到的指令;
或者,
所述移动设备调用StringToHex函数将所述解析得到的有效数据由String型数据转化为byte型数据,将所述byte型数据作为转换得到的指令。
优选地,所述移动设备对所述指令进行编码,将编码得到的第一编码数据发送给所述外部设备之前,还包括:
所述移动设备检测与自身连接的外部设备;
所述移动设备将编码得到的第一编码数据发送给所述外部设备,具体为:
当所述移动设备检测到自身仅与一个外部设备连接时,将所述第一编码数据发送给所述外部设备;当所述移动设备检测到自身与多个外部设备连接时,将所述第一编码数据发送给通过预设接口与自身连接的外部设备。
优选地,所述移动设备判断所述处理结果是否正确,具体为:
所述移动设备获取所述处理结果中的校验数据,检查所述校验数据是否为预设数据,如果是,则判断所述处理结果正确;否则,判断所述处理结果错误。
优选地,所述移动设备将所述处理结果中的有效数据转换为与所述用户数据格式相同的数据,具体为:
所述移动设备将所述有效数据由NSMUtableData型数据转换为对应的char型数据,并将所述char型数据转换为对应的NSString型数据,将所述NSString型数据作为转换得到的数据;
或者,
所述移动设备将所述有效数据由byte型数据转换为String型数据,将所述String型数据作为转换得到的数据。
优选地,所述主机根据用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,具体为:
所述主机根据所述用户数据、所述主机的端口号和所述移动设备的端口号进行组包,得到传输数据包;
所述主机根据所述传输数据包、所述主机的IP地址和所述移动设备的IP地址进行组包,得到所述网络数据包;
所述移动设备对接收到的网络数据包进行解析,得到有效数据,具体为:
所述移动设备对所述接收到的网络数据包进行解析,得到所述传输数据包,对所述传输数据包进行解析,得到所述有效数据。
优选地,所述移动设备对接收到的所述第二编码数据进行解码,得到所述处理结果,具体为:
所述移动设备对所述第二编码数据进行整形,对整形后的所述第二编码数据进行解码,得到第一解码数据;
所述移动设备对所述第一解码数据中的数据单元进行解码,得到第二解码数据,根据所述第二解码数据中的校验数据判断所述第二解码数据是否正确,如果正确,则将所述第二解码数据中除所述校验数据之外的数据作为所述处理结果;否则,丢弃所述第二解码数据。
本发明还提供了一种联机通信的系统,包括移动设备、主机和外部设备,其中,
所述主机包括:
获取模块,用于获取用户数据;
第一生成模块,用于根据所述用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包;
第一发送模块,用于将所述第一生成模块生成的网络数据包发送给所述移动设备;
第一接收模块,用于接收来自所述移动设备的网络数据包,触发第二判断模块;
第一解析模块,用于对所述第一接收模块接收到的网络数据包进行解析;
显示模块,用于显示所述第一解析模块的解析结果;
所述移动设备,包括:
第二接收模块,用于接收来自所述主机的网络数据包和来自所述外部设备的第二编码数据;
第二解析模块,用于将所述第二接收模块接收到的网络数据包进行解析,得到有效数据;
第一转换模块,用于将所述第二解析模块解析得到的有效数据转换为相应的指令;在第三判断模块判断处理结果正确时,将所述处理结果中的有效数据转换为与所述用户数据格式相同的数据;
第一编码模块,用于对所述第一转换模块转换得到的指令进行编码,得到第一编码数据;
第一解码模块,用于对所述第二接收模块接收到的所述第二编码数据进行解码,得到处理结果;
第三判断模块,用于判断所述第一解码模块解码得到的处理结果是否正确;
第二生成模块,用于根据所述第一转换模块转换得到的数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包;在所述第三判断模块判断所述处理结果不正确时,根据所述处理结果、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包;
第二发送模块,用于将所述第一编码模块编码得到的所述第一编码数据发送给所述外部设备;将所述第二生成模块生成的网络数据包发送给所述主机;
所述外部设备,包括:
第三接收模块,用于接收来自所述移动设备的第一编码数据;
第二解码模块,用于对所述第三接收模块接收到的所述第一编码数据进行解码,得到所述指令;
处理模块,用于根据所述第二解码模块解码得到的所述指令进行相应的处理;
第二编码模块,用于对所述处理模块的处理结果进行编码,得到所述第二编码数据;
第三发送模块,用于将所述第二编码模块编码得到的所述第二编码数据发送给所述移动设备。
优选地,所述主机,还包括:
第一判断模块,用于判断所述获取模块获取的用户数据是否包含预设字符;
拆分模块,用于在所述第一判断模块判断所述用户数据包含预设字符时,根据所述预设字符在所述用户数据中的位置,将所述用户数据拆分成多个数据段;
选择模块,用于从所述拆分模块拆分得到的数据段中选取一个未被处理的数据段;
第二判断模块,用于判断所述拆分得到的数据段中是否存在未被处理过的数据段,如果是,则触发所述选择模块;
所述第一生成模块,具体用于根据所述选择模块选取的数据段、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包;在所述第一判断模块判断所述用户数据不包含预设字符时,根据所述用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包。
优选地,所述指令为应用协议数据单元APDU指令。
优选地,所述移动设备,还包括:
监听模块,用于监听预设端口;
创建模块,用于在所述监听模块监听到所述主机向所述预设端口发起连接请求时,创建与所述主机对应的连接描述符,建立与所述主机之间的连接;
所述第一发送模块,具体用于根据所述连接描述符,将所述第一生成模块生成的网络数据包发送给所述移动设备;
所述第二发送模块,具体用于将所述第一编码模块编码得到的所述第一编码数据发送给所述外部设备;根据所述连接描述符,将所述第二生成模块生成的网络数据包发送给所述主机。
优选地,所述主机,还包括:
连接模块,用于根据所述移动设备的IP地址以及所述预设端口的端口号,向所述移动设备发起连接请求。
优选地,所述第二发送模块,具体用于将所述第一编码模块编码得到的所述第一编码数据发送给所述外部设备;将所述连接描述符、所述网络数据包以及所述网络数据包的长度作为参数,调用send函数,向所述主机发送所述网络数据包。
优选地,所述第一转换模块,具体用于将所述第二解析模块解析得到的有效数据由NSData型数据转换为对应的NSString型数据,将所述NSString型数据强转为对应的char*型数据,并调用StrToHex函数,将所述char*型数据转换为对应的byte型数据,将所述byte型数据作为转换得到的指令;或者,调用StringToHex函数将所述第二解析模块解析得到的有效数据由String型数据转化为byte型数据,将所述byte型数据作为转换得到的指令;
在所述第三判断模块判断所述处理结果正确时,将所述处理结果中的有效数据由NSMUtableData型数据转换为对应的char型数据,并将所述char型数据转换为对应的NSString型数据,将所述NSString型数据作为转换得到的数据;或者,将所述处理结果中的有效数据由byte型数据转换为String型数据,将所述String型数据作为转换得到的数据。
优选地,所述移动设备,还包括:
检测模块,用于检测与所述移动设备连接的外部设备;
所述第二发送模块,具体用于将所述第二生成模块生成的网络数据包发送给所述主机;在所述检测模块检测到自身仅与一个外部设备连接时,将所述第一编码数据发送给所述外部设备;在所述检测模块检测到自身与多个外部设备连接时,将所述第一编码数据发送给通过预设接口与自身连接的外部设备。
优选地,所述第三判断模块,具体用于获取所述处理结果中的校验数据,检查所述校验数据是否为预设数据,如果是,则判断所述处理结果正确;否则,判断所述处理结果错误。
优选地,所述第一生成模块,具体用于根据所述用户数据、所述主机的端口号和所述移动设备的端口号进行组包,得到传输数据包;根据所述传输数据包、所述主机的IP地址和所述移动设备的IP地址进行组包,得到所述网络数据包;
所述第二解析模块,具体用于对所述第二接收模块接收到的网络数据包进行解析,得到所述传输数据包,对所述传输数据包进行解析,得到所述有效数据。
优选地,所述第一解码模块,具体用于对所述第二编码数据进行整形,对整形后的所述第二编码数据进行解码,得到第一解码数据;对所述第一解码数据中的数据单元进行解码,得到第二解码数据,根据所述第二解码数据中的校验数据判断所述第二解码数据是否正确,如果正确,则将所述第二解码数据中除所述校验数据之外的数据作为所述处理结果;否则,丢弃所述第二解码数据。
本发明提供的技术方案中,主机与移动设备建立连接,并通过该移动设备与外部设备进行通信,从而达到在主机端对外部设备进行调试的目的,提高了对外部设备进行调试的工作效率。
附图说明
图1和图2为本发明实施例中的一种联机通信的方法流程图;
图3为本发明实施例中的一种联机通信的系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1和图2所示,为本发明实施例中的一种联机通信的方法流程图,该方法应用于包括主机、移动设备、外部设备的系统中,其中,移动设备通过dock口或音频接口与外部设备连接,主机使用socket通讯机制与移动设备进行通信,移动设备作为socket通讯机制中的服务器端,主机作为socket通讯机制中的客户端。socket是建立网络连接时使用的,在连接成功时,移动设备与主机都会生成一个socket实例,并通过操作该实例完成所需的会话。socket连接过程分为三个步骤:服务器监听,客户端请求,连接确认。移动设备可以为iOS设备或Android设备。本发明实施例中的流程图包括以下步骤:
步骤101,移动设备启动服务器端程序,监听预设端口。
例如,当移动设备为iOS设备时,服务器端程序调用listen函数,并使用预设端口的端口号作为listen函数的参数,以监听预设端口,例如8080端口;当监听到有客户端发起socket连接请求时,通过调用accept函数创建与该客户端对应的连接描述符,建立与客户端的连接;否则,继续监听。
当移动设备为Android设备时,服务器端程序调用Serversocket函数,并使用预设端口的端口号作为Serversocket函数的参数,以监听预设端口,例如8080端口;当监听到有客户端发起socket连接请求时,通过调用accept函数创建与该客户端对应的连接描述符,建立与客户端的连接;否则,继续监听。
步骤102,主机获取用户输入的移动设备的IP地址,根据该IP地址向移动设备发起连接请求。
具体地,主机启动客户端程序,该客户端程序检测到用户点击程序界面的“连接”按钮时,触发OnConnect()事件,获取用户输入到该程序界面的第一个编辑框中的信息,将该信息作为用户输入的移动设备的IP地址,并将用户输入的移动设备的IP地址以及移动设备的端口号作为参数,调用DLL(DynamicLinkLibrary,动态链接库)中的connect函数,向移动设备发起连接请求。例如,用户输入的移动设备的IP地址为192.168.0.1,移动设备的端口号默认为8080。
步骤103,主机显示连接成功信息。
进一步的,移动设备同步显示已与该主机连接的信息。
例如,主机中的客户端程序的界面显示“连接成功”的字样,主机的IP地址为192.168.0.2时,移动设备中的服务器端程序的界面显示“建立与192.168.0.2的连接”的字样。
需要说明的是,在本发明的其他实施方式中,如果主机与移动设备连接失败,主机显示连接失败信息,例如,主机中的客户端程序的界面显示“与192.168.0.1连接失败”的字样。
步骤104,主机获取用户数据。
具体地,主机中的客户端程序在检测到用户点击“通讯”按钮时,触发OnSendandrecv()事件,获取用户输入到该程序界面的第二个编辑框中的信息,将该信息作为用户数据,用户数据可以是用户输入的字符串或者二进制数。例如,“0084000008”或“0084000008\n\r0084000004”。
步骤105,主机判断用户数据是否包含预设字符,如果是,则执行步骤125;否则,执行步骤106。
其中,预设字符可以为回车符和换行符,即,“\r\n”。
步骤106,主机根据用户数据、主机的端口号、移动设备的端口号、主机的IP地址和移动设备的IP地址,生成网络数据包。
具体地,主机可以根据用户数据、主机的端口号和移动设备的端口号进行组包,得到传输数据包;根据该传输数据包、主机的IP地址和移动设备的IP地址进行组包,得到网络数据包。
需要说明的是,在本发明的其他实施方式中,主机还可以根据序号、确认号、数据偏移、校验和、选项字段、填充字段、用户数据、主机的端口号和移动设备的端口号进行组包,得到传输数据包;根据该传输数据包、版本号、标识符、生存时间、填充项、主机的IP地址和移动设备的IP地址进行组包,得到网络数据包。
步骤107,主机将网络数据包发送给移动设备。
具体地,主机中的客户端程序可以将自身对应的连接描述符、网络数据包以及该网络数据包的长度作为参数,调用DLL中的SendAndRecvData函数,即socket中的send函数,通过Wi-Fi等方式向移动设备发送网络数据包。
需要说明的是,在本发明的其他实施方式中,当主机向移动设备发送网络数据包失败时,主机显示发送失败信息。例如,主机中的客户端程序的界面显示“发送数据失败”的字样。
步骤108,移动设备对接收到的网络数据包进行解析,对解析得到的有效数据进行转换,得到相应的指令。
具体地,当移动设备为iOS设备时,移动设备中的服务器端程序调用recv函数接收来自主机的网络数据包,对该网络数据包进行解析,得到传输数据包,对该传输数据包进行解析,得到有效数据,并将该有效数据由NSData型数据转换为对应的NSString型数据,再将该NSString型数据强转为对应的char*型数据,然后调用StrToHex函数,将该char*型数据转换为对应的byte型数据,即转换得到的指令,该指令可以为APDU(ApplicationProtocolDataUnit,应用协议数据单元)指令,也可以为其他类型的指令。
当移动设备为Android设备时,移动设备中的服务器端程序调用BufferedReader函数接收来自主机的网络数据包,对该网络数据包进行解析,并调用StringToHex函数将解析得到的有效数据由String型数据转化为byte型数据,即转换得到的指令,该指令可以为APDU指令,也可以为其他类型的指令。
例如,移动设备解析得到的有效数据为“0084000008”时,服务器端程序界面显示“收到192.168.0.2发送的数据:0084000008”的字样,将该有效数据转换成16进制的APDU指令(0x00,0x84,0x00,0x00,0x08),即,获取随机数指令。
步骤109,移动设备对转换得到的指令进行编码,得到第一编码数据。
步骤110,移动设备将第一编码数据发送给外部设备。
具体地,移动设备中的服务器端程序检测与自身连接的外部设备,并在检测到自身仅与一个外部设备连接时,将第一编码数据作为参数,调用audio_transmit函数,将该第一编码数据发送给该外部设备;在检测到自身与多个外部设备连接时,将转换得到的指令作为参数,调用audio_transmit函数,将该指令发送给通过预设接口与自身连接的外部设备。例如,预设接口为dock口或音频口。
需要说明的是,在本发明的其他实施方式中,当移动设备向外部设备发送第一编码数据失败时,移动设备显示发送失败信息,例如,移动设备中的服务器端程序的界面显示“KEY返回的数据:Timeout”的字样。
步骤111,外部设备对接收到的第一编码数据进行解码,根据解码得到的指令进行相应的处理,得到处理结果。
其中,处理结果包括有效数据和校验数据。例如,解码得到的指令为获取随机数指令时,外部设备生成随机数,将该随机数作为有效数据,并在该有效数据结尾加上校验数据作为处理结果,例如“25849632576849239000”。
步骤112,外部设备对处理结果进行编码,将编码得到的第二编码数据发送给移动设备。
需要说明的是,当外部设备向移动设备发送第二编码数据失败时,外部设备显示发送失败信息。
步骤113,移动设备对接收到的第二编码数据进行解码,得到处理结果。
具体地,移动设备对第二编码数据进行整形,对整形后的第二编码数据进行解码,得到第一解码数据;移动设备对第一解码数据中的数据单元进行解码,得到第二解码数据,根据第二解码数据中的校验数据判断该第二解码数据是否正确,如果正确,则将该第二解码数据中除校验数据之外的数据作为处理结果;否则,丢弃该第二解码数据。
步骤114,移动设备判断处理结果是否正确,如果正确,则执行步骤119;否则,执行步骤115。
具体地,移动设备中的服务器端程序可以调用audio_transmit函数接收来自外部设备的第二编码数据,对第二编码数据进行解码,得到处理结果,获取处理结果中的校验数据,检查该校验数据是否为预设数据,例如,0x9000,如果是,则判断处理结果正确;否则,判断处理结果错误。
步骤115,移动设备显示外部设备返回的处理结果。
例如,外部设备返回的处理结果为错误信息“6d00”时,移动设备中的服务器端程序的界面显示“6d00”的字样。
步骤116,移动设备根据处理结果、主机的端口号、移动设备的端口号、主机的IP地址和移动设备的IP地址生成网络数据包。
步骤117,移动设备将网络数据包发送给主机。
步骤118,主机对接收到的网络数据包进行解析,显示解析结果,然后执行步骤124。
例如,解析结果为错误信息“6d00”时,主机中的客户端程序的界面显示“6d00”的字样。
步骤119,移动设备显示处理结果。
例如,移动设备中的服务器端程序的界面显示“KEY返回的数据:25849632576849239000”的字样。
步骤120,移动设备将处理结果中的有效数据转换为与用户数据格式相同的数据。
具体地,当移动设备为iOS设备时,移动设备中的服务器端程序可以调用HexToStr函数,将处理结果中的有效数据由NSMUtableData型数据转换为对应的char型数据,再将该char型数据转换为对应的NSString型数据,即与用户数据格式相同的数据。
当移动设备为Android设备时,移动设备中的服务器端程序可以调用HexToString函数,将处理结果中的有效数据由byte型数据转换为String型数据,即与用户数据格式相同的数据。
步骤121,移动设备根据转换得到的数据、主机的端口号、移动设备的端口号、主机的IP地址和移动设备的IP地址生成网络数据包。
步骤122,移动设备将生成的网络数据包发送给主机。
具体地,移动设备中的服务器端程序可以将主机对应的连接描述符、生成的网络数据包以及该网络数据包的长度作为参数,调用send函数,通过Wi-Fi等方式向主机发送生成的网络数据包。
需要说明的是,当移动设备向主机发送网络数据包失败时,移动设备显示发送失败信息,例如,移动设备中的服务器端程序的界面显示“发送失败”的字样。
步骤123,主机对接收到的网络数据包进行解析,显示解析结果。
具体地,主机可以将解析结果显示到客户端程序的界面。例如,在客户端程序的第三个显示框显示“2584963257684923”的字样。
步骤124,主机断开socket连接,终止服务请求。
具体地,主机中的客户端程序检测到用户点击“断开连接”按钮时,触发DisConnectServer()事件,调用closesocke函数,关闭socket连接,终止服务请求。
步骤125,主机根据预设字符在用户数据中的位置,将该用户数据拆分成多个数据段。
具体地,当用户数据中包含一个预设字符时,主机中的客户端程序可以将位于该预设字符前后的数据作为拆分得到的两个独立的数据段;当用户数据中包含多个预设字符时,主机中的客户端程序可以将位于第一个预设字符前的数据、位于最后一个预设字符后的数据,以及相邻两个预设字符之间的数据作为拆分得到的多个数据段。
步骤126,主机从拆分得到的数据段中选取一个未被处理的数据段。
步骤127,主机根据选取的数据段、主机的端口号、移动设备的端口号、主机的IP地址和移动设备的IP地址生成网络数据包。
具体地,主机可以根据选取的数据段、主机的端口号和移动设备的端口号进行组包,得到传输数据包;根据该传输数据包、主机的IP地址和移动设备的IP地址进行组包,得到网络数据包。
需要说明的是,在本发明的其他实施方式中,主机还可以根据序号、确认号、数据偏移、校验和、选项字段、填充字段、选取的数据段、主机的端口号和移动设备的端口号进行组包,得到传输数据包;根据该传输数据包、版本号、标识符、生存时间、填充项、主机的IP地址和移动设备的IP地址进行组包,得到网络数据包。
步骤128,主机将网络数据包发送给移动设备。
具体地,主机中的客户端程序可以将自身对应的连接描述符、网络数据包以及该网络数据包的长度作为参数,调用DLL中的SendAndRecvData函数,即socket中的send函数,通过Wi-Fi等方式向移动设备发送网络数据包。
需要说明的是,在本发明的其他实施方式中,当主机向移动设备发送网络数据包失败时,主机显示发送失败信息,例如,主机中的客户端程序的界面显示显示“发送数据失败”的字样。
步骤129,移动设备对接收到的网络数据包进行解析,对解析得到的有效数据进行转换,得到相应的指令。
具体地,当移动设备为iOS设备时,移动设备中的服务器端程序调用recv函数接收来自主机的网络数据包,对该网络数据包进行解析,并将解析得到的有效数据由NSData型数据转换为对应的NSString型数据,再将该NSString型数据强转为对应的char*型数据,然后调用StrToHex函数,将该char*型转换为对应的byte型数据,即转换得到的指令。
当移动设备为Android设备时,移动设备中的服务器端程序调用BufferedReader函数接收来自主机的网络数据包,对该网络数据包进行解析,并调用StringToHex函数将解析得到的有效数据由String型数据转化为byte型数据,即转换得到的指令。
例如,移动设备解析得到的有效数据为“0084000008”时,服务器端程序界面显示“收到192.168.0.2发送的数据:0084000008”的字样,将该有效数据转换成16进制的APDU指令(0x00,0x84,0x00,0x00,0x08),即,获取随机数指令。
步骤130,移动设备对转换得到的指令进行编码,得到第一编码数据。
步骤131,移动设备将第一编码数据发送给外部设备。
具体地,移动设备中的服务器端程序检测与自身连接的外部设备,并在检测到自身仅与一个外部设备连接时,将第一编码数据作为参数,调用audio_transmit函数,将该第一编码数据发送给该外部设备;在检测到自身与多个外部设备连接时,将转换得到的指令作为参数,调用audio_transmit函数,将该指令发送给通过预设接口与自身连接的外部设备。例如,预设接口为dock口或音频口。
需要说明的是,在本发明的其他实施方式中,当移动设备向外部设备发送第一编码数据失败时,移动设备显示发送失败信息,例如,移动设备中的服务器端程序的界面显示“KEY返回的数据:Timeout”的字样。
步骤132,外部设备对接收到的第一编码数据进行解码,根据解码得到的指令进行相应的处理,得到处理结果。
其中,处理结果包括有效数据和校验数据。例如,转换得到的指令为获取随机数指令时,外部设备生成随机数,将该随机数作为有效数据,并在该有效数据结尾加上校验数据作为处理结果,例如“25849632576849239000”。
步骤133,外部设备对处理结果进行编码,将编码得到的第二编码数据发送给移动设备。
需要说明的是,当外部设备向移动设备发送第二编码数据失败时,外部设备显示发送失败信息。
步骤134,移动设备对接收到的第二编码数据进行解码,得到处理结果。
步骤135,移动设备判断处理结果是否正确,如果正确,则执行步骤140;否则,执行步骤136。
具体地,移动设备中的服务器端程序可以调用audio_transmit函数接收来自外部设备的第二编码数据,对第二编码数据进行解码,得到处理结果,获取处理结果中的校验数据,检查该校验数据是否为预设数据,例如,0x9000,如果是,则判断处理结果正确;否则,判断处理结果错误。
步骤136,移动设备显示外部设备返回的处理结果。
例如,外部设备返回的处理结果为错误信息“6d00”时,移动设备中的服务器端程序的界面显示“6d00”的字样。
步骤137,移动设备根据处理结果、主机的端口号、移动设备的端口号、主机的IP地址和移动设备的IP地址生成网络数据包。
步骤138,移动设备将网络数据包发送给主机。
步骤139,主机对接收到的网络数据包进行解析,显示解析结果,并执行步骤145。
例如,解析结果为错误信息“6d00”时,主机中的客户端程序的界面显示“6d00”的字样。
步骤140,移动设备显示处理结果。
例如,移动设备中的服务器端程序的界面显示“KEY返回的数据:25849632576849239000”的字样。
步骤141,移动设备将处理结果中的有效数据转换为与用户数据格式相同的数据。
具体地,当移动设备为iOS设备时,移动设备中的服务器端程序可以调用HexToStr函数,将处理结果中的有效数据由NSMUtableData型数据转换为对应的char型数据,再将该char型数据转换为对应的NSString型数据,即与用户数据格式相同的数据。
当移动设备为Android设备时,移动设备中的服务器端程序可以调用HexToString函数,将处理结果中的有效数据由byte型数据转换为String型数据,即与用户数据格式相同的数据。
步骤142,移动设备根据转换得到的数据、主机的端口号、移动设备的端口号、主机的IP地址和移动设备的IP地址生成网络数据包。
步骤143,移动设备将生成的网络数据包发送给主机。
具体地,移动设备中的服务器端程序可以将主机对应的连接描述符、生成的网络数据包以及该网络数据包的长度作为参数,调用send函数,通过Wi-Fi等方式向主机发送生成的网络数据包。
需要说明的是,当移动设备向主机发送网络数据包失败时,移动设备显示发送失败信息,例如,移动设备中的服务器端程序的界面显示“发送失败”的字样。
步骤144,主机对接收到的网络数据包进行解析,显示解析结果。
具体地,主机可以将解析结果显示到客户端程序的界面。例如,在客户端程序的第三个显示框显示“2584963257684923”的字样。
步骤145,主机判断拆分得到的数据段中是否存在未被处理的数据段,如果是,则返回步骤126;否则,执行步骤146。
步骤146,主机断开socket连接,终止服务请求。
具体地,主机中的客户端程序检测到用户点击“断开连接”按钮时,触发DisConnectServer()事件,调用closesocke函数,关闭socket连接,终止服务请求。
本发明提供的技术方案中,主机与移动设备建立连接,并通过该移动设备与外部设备进行通信,从而达到在主机端对外部设备进行调试的目的,提高了对外部设备进行调试的工作效率
需要说明的是,在本发明的其他实施方式中该,主机也可以不判断获取的用户数据中是否包含预设字符,而是直接根据用户数据、主机的端口号、移动设备的端口号、主机的IP地址和移动设备的IP地址生成网络数据包,将该网络数据包发送给移动设备,并进行后续的操作,同样可以实现本发明的发明目的。
如图3所示,为本发明实施例中的一种联机通信的系统结构图,包括主机300、移动设备400和外部设备500,其中,
主机300包括:
获取模块301,用于获取用户数据;
第一判断模块302,用于判断获取模块301获取的用户数据是否包含预设字符;
拆分模块303,用于在第一判断模块302判断所述用户数据包含预设字符时,根据所述预设字符在所述用户数据中的位置,将所述用户数据拆分成多个数据段;
选择模块304,用于从拆分模块303拆分得到的数据段中选取一个未被处理的数据段;
第一生成模块305,用于根据选择模块304选取的数据段、主机300的端口号、移动设备400的端口号、主机300的IP地址和移动设备400的IP地址生成网络数据包;在第一判断模块302判断所述用户数据不包含预设字符时,根据所述用户数据、主机300的端口号、移动设备400的端口号、主机300的IP地址和移动设备400的IP地址生成网络数据包;
第一发送模块306,用于将第一生成模块305生成的网络数据包发送给移动设备400;
第一接收模块307,用于接收来自移动设备400的网络数据包,触发第二判断模块310;
第一解析模块308,用于对第一接收模块307接收到的网络数据包进行解析;
显示模块309,用于显示第一解析模块308的解析结果;
第二判断模块310,用于判断拆分模块303拆分得到的数据段中是否存在未被处理过的数据段,如果是,则触发选择模块304;
上述主机300,还包括:
连接模块311,用于根据移动设备300的IP地址以及预设端口的端口号,向移动设备400发起连接请求。
上述移动设备400,包括:
第二接收模块401,用于接收来自主机300的网络数据包和来自外部设备500的第二编码数据;
第二解析模块402,用于将第二接收模块401接收到的网络数据包进行解析,得到有效数据;
第一转换模块403,用于将第二解析模块402解析得到的有效数据转换为相应的指令;在第三判断模块406判断处理结果正确时,将所述处理结果中的有效数据转换为与所述用户数据格式相同的数据;
具体地,上述第一转换模块403,具体用于将第二解析模块402解析得到的有效数据由NSData型数据转换为对应的NSString型数据,将所述NSString型数据强转为对应的char*型数据,并调用StrToHex函数,将所述char*型转换为对应的byte型数据,将所述byte型数据作为转换得到的指令;或者,调用StringToHex函数将第二解析模块402解析得到的有效数据由String型数据转化为byte型数据,将所述byte型数据作为转换得到的指令;
在第三判断模块406判断所述处理结果正确时,将所述处理结果中的有效数据由NSMUtableData型数据转换为对应的char型数据,并将所述char型数据转换为对应的NSString型数据,将所述NSString型数据作为转换得到的数据;或者,将所述处理结果中的有效数据由byte型数据转换为String型数据,将所述String型数据作为转换得到的数据。
其中,第一转换模块403转换得到的指令可以为APDU指令,也可以为其他类型的指令。
第一编码模块404,用于对第一转换模块403转换得到的指令进行编码,得到第一编码数据;
第一解码模块405,用于对第二接收模块401接收到的所述第二编码数据进行解码,得到处理结果;
具体地,上述第一解码模块405,具体用于对所述第二编码数据进行整形,对整形后的所述第二编码数据进行解码,得到第一解码数据;对所述第一解码数据中的数据单元进行解码,得到第二解码数据,根据所述第二解码数据中的校验数据判断所述第二解码数据是否正确,如果正确,则将所述第二解码数据中除所述校验数据之外的数据作为所述处理结果;否则,丢弃所述第二解码数据。
第三判断模块406,用于判断第一解码模块405解码得到的处理结果是否正确;
具体地,上述第三判断模块406,具体用于获取所述处理结果中的校验数据,检查所述校验数据是否为预设数据,如果是,则判断所述处理结果正确;否则,判断所述处理结果错误。
第二生成模块407,用于根据第一转换模块403转换得到的数据、主机300的端口号、移动设备400的端口号、主机300的IP地址和移动设备400的IP地址生成网络数据包;在第三判断模块406判断所述处理结果不正确时,根据所述处理结果、主机300的端口号、移动设备400的端口号、主机300的IP地址和移动设备400的IP地址生成网络数据包;
第二发送模块408,用于将第一编码模块404编码得到的所述第一编码数据发送给外部设备500;将第二生成模块407生成的网络数据包发送给主机300;
上述第一生成模块305,具体用于根据选择模块304选取的数据段、主机300的端口号和移动设备400的端口号进行组包,得到传输数据包;根据所述传输数据包、主机300的IP地址和移动设备400的IP地址进行组包,得到所述网络数据包;
在第一判断模块302判断所述用户数据不包含预设字符时,根据所述用户数据、主机300的端口号和移动设备400的端口号进行组包,得到传输数据包;根据所述传输数据包、主机300的IP地址和移动设备400的IP地址进行组包,得到所述网络数据包;
相应地,上述第二解析模块402,具体用于对第二接收模块401接收到的网络数据包进行解析,得到所述传输数据包,对所述传输数据包进行解析,得到所述有效数据。
上述移动设备400,还包括:
监听模块409,用于监听预设端口;
创建模块410,用于在监听模块409监听到主机300向所述预设端口发起连接请求时,创建与所述主机对应的连接描述符,建立与所述主机之间的连接;
相应地,上述第一发送模块306,具体用于根据所述连接描述符,将第一生成模块305生成的网络数据包发送给移动设备400;
上述第二发送模块408,具体用于将第一编码模块404编码得到的所述第一编码数据发送给外部设备500;根据所述连接描述符,将第二生成模块407生成的网络数据包发送给主机300。
具体地,上述第二发送模块408,具体用于将第一编码模块404编码得到的所述第一编码数据发送给外部设备500;将所述连接描述符、所述网络数据包以及所述网络数据包的长度作为参数,调用send函数,向主机300发送所述网络数据包。
上述移动设备400,还包括:
检测模块411,用于检测与移动设备300连接的外部设备;
相应地,上述第二发送模块408,具体用于将第二生成模块407生成的网络数据包发送给主机300;在检测模块411检测到自身仅与一个外部设备连接时,将所述第一编码数据发送给该外部设备;在检测模块411检测到自身与多个外部设备连接时,将第一编码数据发送给通过预设接口与自身连接的外部设备。
上述外部设备500,包括:
第三接收模块501,用于接收来自移动设备400的第一编码数据;
第二解码模块502,用于对第三接收模块501接收到的所述第一编码数据进行解码,得到所述指令;
处理模块503,用于根据第二解码模块502解码得到的所述指令进行相应的处理;
第二编码模块504,用于对处理模块503的处理结果进行编码,得到所述第二编码数据;
第三发送模块505,用于将第二编码模块504编码得到的所述第二编码数据发送给所述移动设备400。
本发明提供的技术方案中,主机与移动设备建立连接,并通过该移动设备与外部设备进行通信,从而达到在主机端对外部设备进行调试的目的,提高了对外部设备进行调试的工作效率。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (23)
1.一种联机通信的方法,其特征在于,应用于包括移动设备、主机和外部设备的系统中,所述方法包括以下步骤:
A1、主机获取用户数据;
A2、所述主机根据所述用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包;
A3、所述主机将所述网络数据包发送给所述移动设备;
A4、所述移动设备对接收到的网络数据包进行解析;
A5、所述移动设备将解析得到的有效数据转换为相应的指令;
A6、所述移动设备对所述指令进行编码;
A7、所述移动设备将编码得到的第一编码数据发送给所述外部设备;
A8、所述外部设备对接收到的所述第一编码数据进行解码,根据解码得到的指令进行相应的处理;
A9、所述外部设备对得到的处理结果进行编码;
A10、所述外部设备将编码得到的第二编码数据发送给所述移动设备;
A11、所述移动设备对接收到的所述第二编码数据进行解码,得到所述处理结果;
A12、所述移动设备判断所述处理结果是否正确,如果正确,则执行步骤A13;否则,执行步骤A15;
A13、所述移动设备将所述处理结果中的有效数据转换为与所述用户数据格式相同的数据;
A14、所述移动设备根据转换得到的数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,将生成的网络数据包发送给所述主机,并执行步骤A16;
A15、所述移动设备根据所述处理结果、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,并将生成的网络数据包发送给所述主机;
A16、所述主机对接收到的网络数据包进行解析;
A17、所述主机显示解析结果。
2.如权利要求1所述的方法,其特征在于,所述主机获取用户数据之后,还包括:
所述主机判断所述用户数据中是否包含预设字符;
所述主机根据所述用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,将所述网络数据包发送给所述移动设备,具体为:
当所述用户数据中包含预设字符时,所述主机根据所述预设字符在所述用户数据中的位置,将所述用户数据拆分成多个数据段,从拆分得到的数据段中选取一个未被处理的数据段,根据选取的数据段、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,将生成的网络数据包发送给所述移动设备;
当所述用户数据中不包含预设字符时,所述主机根据所述用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,将所述网络数据包发送给所述移动设备;
所述主机对接收到的网络数据包进行解析,显示解析结果之后,还包括:
所述主机判断所述拆分得到的数据段中是否存在未被处理的数据段,如果是,则从所述拆分得到的数据段中,选取一个未被处理的数据段,根据选取的数据段、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,将生成的网络数据包发送给所述移动设备,并返回步骤A4;否则,结束流程。
3.如权利要求1所述的方法,其特征在于,所述指令为应用协议数据单元APDU指令。
4.如权利要求1所述的方法,其特征在于,所述主机将生成的网络数据包发送给所述移动设备之前,还包括:
所述移动设备监听预设端口,在监听到所述主机向所述预设端口发起连接请求时,创建与所述主机对应的连接描述符,建立与所述主机之间的连接;
所述主机将生成的网络数据包发送给所述移动设备,具体为:
所述主机根据所述连接描述符,向所述移动设备发送所述网络数据包;
所述移动设备将生成的网络数据包发送给所述主机,具体为:
所述移动设备根据所述连接描述符,向所述主机发送所述网络数据包。
5.如权利要求4所述的方法,其特征在于,所述移动设备建立与所述主机之间的连接之前,还包括:
所述主机根据所述移动设备的IP地址以及所述预设端口的端口号,向所述移动设备发起连接请求。
6.如权利要求4所述的方法,其特征在于,所述移动设备根据所述连接描述符,向所述主机发送所述网络数据包,具体为:
所述移动设备将所述连接描述符、所述网络数据包以及所述网络数据包的长度作为参数,调用send函数,向所述主机发送所述网络数据包。
7.如权利要求1所述的方法,其特征在于,所述移动设备将解析得到的有效数据转换为相应的指令,具体为:
所述移动设备将所述解析得到的有效数据由NSData型数据转换为对应的NSString型数据,将所述NSString型数据强转为对应的char*型数据,并调用StrToHex函数,将所述char*型数据转换为对应的byte型数据,将所述byte型数据作为转换得到的指令;
或者,
所述移动设备调用StringToHex函数将所述解析得到的有效数据由String型数据转化为byte型数据,将所述byte型数据作为转换得到的指令。
8.如权利要求1所述的方法,其特征在于,所述移动设备对所述指令进行编码,将编码得到的第一编码数据发送给所述外部设备之前,还包括:
所述移动设备检测与自身连接的外部设备;
所述移动设备将编码得到的第一编码数据发送给所述外部设备,具体为:
当所述移动设备检测到自身仅与一个外部设备连接时,将所述第一编码数据发送给所述外部设备;当所述移动设备检测到自身与多个外部设备连接时,将所述第一编码数据发送给通过预设接口与自身连接的外部设备。
9.如权利要求1所述的方法,其特征在于,所述移动设备判断所述处理结果是否正确,具体为:
所述移动设备获取所述处理结果中的校验数据,检查所述校验数据是否为预设数据,如果是,则判断所述处理结果正确;否则,判断所述处理结果错误。
10.如权利要求1所述的方法,其特征在于,所述移动设备将所述处理结果中的有效数据转换为与所述用户数据格式相同的数据,具体为:
所述移动设备将所述有效数据由NSMUtableData型数据转换为对应的char型数据,并将所述char型数据转换为对应的NSString型数据,将所述NSString型数据作为转换得到的数据;
或者,
所述移动设备将所述有效数据由byte型数据转换为String型数据,将所述String型数据作为转换得到的数据。
11.如权利要求1所述的方法,其特征在于,所述主机根据用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包,具体为:
所述主机根据所述用户数据、所述主机的端口号和所述移动设备的端口号进行组包,得到传输数据包;
所述主机根据所述传输数据包、所述主机的IP地址和所述移动设备的IP地址进行组包,得到所述网络数据包;
所述移动设备对接收到的网络数据包进行解析,得到有效数据,具体为:
所述移动设备对所述接收到的网络数据包进行解析,得到所述传输数据包,对所述传输数据包进行解析,得到所述有效数据。
12.如权利要求1所述的方法,其特征在于,所述移动设备对接收到的所述第二编码数据进行解码,得到所述处理结果,具体为:
所述移动设备对所述第二编码数据进行整形,对整形后的所述第二编码数据进行解码,得到第一解码数据;
所述移动设备对所述第一解码数据中的数据单元进行解码,得到第二解码数据,根据所述第二解码数据中的校验数据判断所述第二解码数据是否正确,如果正确,则将所述第二解码数据中除所述校验数据之外的数据作为所述处理结果;否则,丢弃所述第二解码数据。
13.一种联机通信的系统,其特征在于,包括移动设备、主机和外部设备,其中,
所述主机包括:
获取模块,用于获取用户数据;
第一生成模块,用于根据所述用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包;
第一发送模块,用于将所述第一生成模块生成的网络数据包发送给所述移动设备;
第一接收模块,用于接收来自所述移动设备的网络数据包,触发第二判断模块;
第一解析模块,用于对所述第一接收模块接收到的网络数据包进行解析;
显示模块,用于显示所述第一解析模块的解析结果;
所述移动设备,包括:
第二接收模块,用于接收来自所述主机的网络数据包和来自所述外部设备的第二编码数据;
第二解析模块,用于将所述第二接收模块接收到的网络数据包进行解析,得到有效数据;
第一转换模块,用于将所述第二解析模块解析得到的有效数据转换为相应的指令;在第三判断模块判断处理结果正确时,将所述处理结果中的有效数据转换为与所述用户数据格式相同的数据;
第一编码模块,用于对所述第一转换模块转换得到的指令进行编码,得到第一编码数据;
第一解码模块,用于对所述第二接收模块接收到的所述第二编码数据进行解码,得到处理结果;
第三判断模块,用于判断所述第一解码模块解码得到的处理结果是否正确;
第二生成模块,用于根据所述第一转换模块转换得到的数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包;在所述第三判断模块判断所述处理结果不正确时,根据所述处理结果、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包;
第二发送模块,用于将所述第一编码模块编码得到的所述第一编码数据发送给所述外部设备;将所述第二生成模块生成的网络数据包发送给所述主机;
所述外部设备,包括:
第三接收模块,用于接收来自所述移动设备的第一编码数据;
第二解码模块,用于对所述第三接收模块接收到的所述第一编码数据进行解码,得到所述指令;
处理模块,用于根据所述第二解码模块解码得到的所述指令进行相应的处理;
第二编码模块,用于对所述处理模块的处理结果进行编码,得到所述第二编码数据;
第三发送模块,用于将所述第二编码模块编码得到的所述第二编码数据发送给所述移动设备。
14.如权利要求13所述的系统,其特征在于,所述主机,还包括:
第一判断模块,用于判断所述获取模块获取的用户数据是否包含预设字符;
拆分模块,用于在所述第一判断模块判断所述用户数据包含预设字符时,根据所述预设字符在所述用户数据中的位置,将所述用户数据拆分成多个数据段;
选择模块,用于从所述拆分模块拆分得到的数据段中选取一个未被处理的数据段;
第二判断模块,用于判断所述拆分得到的数据段中是否存在未被处理过的数据段,如果是,则触发所述选择模块;
所述第一生成模块,具体用于根据所述选择模块选取的数据段、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包;在所述第一判断模块判断所述用户数据不包含预设字符时,根据所述用户数据、所述主机的端口号、所述移动设备的端口号、所述主机的IP地址和所述移动设备的IP地址生成网络数据包。
15.如权利要求13所述的系统,其特征在于,所述指令为应用协议数据单元APDU指令。
16.如权利要求13所述的系统,其特征在于,所述移动设备,还包括:
监听模块,用于监听预设端口;
创建模块,用于在所述监听模块监听到所述主机向所述预设端口发起连接请求时,创建与所述主机对应的连接描述符,建立与所述主机之间的连接;
所述第一发送模块,具体用于根据所述连接描述符,将所述第一生成模块生成的网络数据包发送给所述移动设备;
所述第二发送模块,具体用于将所述第一编码模块编码得到的所述第一编码数据发送给所述外部设备;根据所述连接描述符,将所述第二生成模块生成的网络数据包发送给所述主机。
17.如权利要求16所述的系统,其特征在于,所述主机,还包括:
连接模块,用于根据所述移动设备的IP地址以及所述预设端口的端口号,向所述移动设备发起连接请求。
18.如权利要求16所述的系统,其特征在于,
所述第二发送模块,具体用于将所述第一编码模块编码得到的所述第一编码数据发送给所述外部设备;将所述连接描述符、所述网络数据包以及所述网络数据包的长度作为参数,调用send函数,向所述主机发送所述网络数据包。
19.如权利要求13所述的系统,其特征在于,所述第一转换模块,具体用于将所述第二解析模块解析得到的有效数据由NSData型数据转换为对应的NSString型数据,将所述NSString型数据强转为对应的char*型数据,并调用StrToHex函数,将所述char*型数据转换为对应的byte型数据,将所述byte型数据作为转换得到的指令;或者,调用StringToHex函数将所述第二解析模块解析得到的有效数据由String型数据转化为byte型数据,将所述byte型数据作为转换得到的指令;
在所述第三判断模块判断所述处理结果正确时,将所述处理结果中的有效数据由NSMUtableData型数据转换为对应的char型数据,并将所述char型数据转换为对应的NSString型数据,将所述NSString型数据作为转换得到的数据;或者,将所述处理结果中的有效数据由byte型数据转换为String型数据,将所述String型数据作为转换得到的数据。
20.如权利要求13所述的系统,其特征在于,所述移动设备,还包括:
检测模块,用于检测与所述移动设备连接的外部设备;
所述第二发送模块,具体用于将所述第二生成模块生成的网络数据包发送给所述主机;在所述检测模块检测到自身仅与一个外部设备连接时,将所述第一编码数据发送给所述外部设备;在所述检测模块检测到自身与多个外部设备连接时,将所述第一编码数据发送给通过预设接口与自身连接的外部设备。
21.如权利要求13所述的系统,其特征在于,
所述第三判断模块,具体用于获取所述处理结果中的校验数据,检查所述校验数据是否为预设数据,如果是,则判断所述处理结果正确;否则,判断所述处理结果错误。
22.如权利要求13所述的系统,其特征在于,
所述第一生成模块,具体用于根据所述用户数据、所述主机的端口号和所述移动设备的端口号进行组包,得到传输数据包;根据所述传输数据包、所述主机的IP地址和所述移动设备的IP地址进行组包,得到所述网络数据包;
所述第二解析模块,具体用于对所述第二接收模块接收到的网络数据包进行解析,得到所述传输数据包,对所述传输数据包进行解析,得到所述有效数据。
23.如权利要求13所述的系统,其特征在于,所述第一解码模块,具体用于对所述第二编码数据进行整形,对整形后的所述第二编码数据进行解码,得到第一解码数据;对所述第一解码数据中的数据单元进行解码,得到第二解码数据,根据所述第二解码数据中的校验数据判断所述第二解码数据是否正确,如果正确,则将所述第二解码数据中除所述校验数据之外的数据作为所述处理结果;否则,丢弃所述第二解码数据。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210592905.3A CN103067269B (zh) | 2012-12-31 | 2012-12-31 | 一种联机通信的方法和系统 |
US14/394,625 US9294954B2 (en) | 2012-12-31 | 2013-11-27 | Method and system for online communication |
PCT/CN2013/087921 WO2014101611A1 (zh) | 2012-12-31 | 2013-11-27 | 一种联机通信的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210592905.3A CN103067269B (zh) | 2012-12-31 | 2012-12-31 | 一种联机通信的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103067269A CN103067269A (zh) | 2013-04-24 |
CN103067269B true CN103067269B (zh) | 2016-04-06 |
Family
ID=48109737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210592905.3A Active CN103067269B (zh) | 2012-12-31 | 2012-12-31 | 一种联机通信的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9294954B2 (zh) |
CN (1) | CN103067269B (zh) |
WO (1) | WO2014101611A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8607089B2 (en) * | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
CN103067269B (zh) * | 2012-12-31 | 2016-04-06 | 飞天诚信科技股份有限公司 | 一种联机通信的方法和系统 |
CN108776621A (zh) * | 2018-05-31 | 2018-11-09 | 迈克医疗电子有限公司 | 软件架构中层级间的通信方法及装置 |
CN110674644A (zh) * | 2018-07-03 | 2020-01-10 | 深圳Tcl数字技术有限公司 | 一种辅助翻译方法和系统 |
CN112463706B (zh) * | 2020-12-07 | 2024-05-31 | 上海电气集团股份有限公司 | 一种数据发送、接收方法及通信终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096385B1 (en) * | 2002-09-16 | 2006-08-22 | Advanced Micro Devices, Inc. | Method and system for testing a microprocessor |
CN101359303A (zh) * | 2007-08-03 | 2009-02-04 | 深圳艾科创新微电子有限公司 | 一种在线调试微控制器及其外设器件的装置及调试方法 |
CN102411539A (zh) * | 2011-12-01 | 2012-04-11 | 康佳集团股份有限公司 | 一种手机外部设备在线调试方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8281030B2 (en) * | 2004-04-07 | 2012-10-02 | Hand Held Products, Inc. | HTTP enabled computer peripheral |
US8698603B2 (en) * | 2005-11-15 | 2014-04-15 | Cisco Technology, Inc. | Methods and systems for automatic device provisioning in an RFID network using IP multicast |
WO2008089450A1 (en) | 2007-01-19 | 2008-07-24 | United States Postal Services | System and method for electronic transaction verification |
US9166878B1 (en) * | 2010-12-23 | 2015-10-20 | Juniper Networks, Inc. | Network management configuration for retrieving and aggregating status information from resources distributed across a network |
CN103067269B (zh) * | 2012-12-31 | 2016-04-06 | 飞天诚信科技股份有限公司 | 一种联机通信的方法和系统 |
-
2012
- 2012-12-31 CN CN201210592905.3A patent/CN103067269B/zh active Active
-
2013
- 2013-11-27 WO PCT/CN2013/087921 patent/WO2014101611A1/zh active Application Filing
- 2013-11-27 US US14/394,625 patent/US9294954B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096385B1 (en) * | 2002-09-16 | 2006-08-22 | Advanced Micro Devices, Inc. | Method and system for testing a microprocessor |
CN101359303A (zh) * | 2007-08-03 | 2009-02-04 | 深圳艾科创新微电子有限公司 | 一种在线调试微控制器及其外设器件的装置及调试方法 |
CN102411539A (zh) * | 2011-12-01 | 2012-04-11 | 康佳集团股份有限公司 | 一种手机外部设备在线调试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US9294954B2 (en) | 2016-03-22 |
CN103067269A (zh) | 2013-04-24 |
WO2014101611A1 (zh) | 2014-07-03 |
US20150296398A1 (en) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103067269B (zh) | 一种联机通信的方法和系统 | |
CN108289060B (zh) | 一种基于rpc服务的数据处理方法以及装置 | |
CN103428627B (zh) | 物联网系统中数据的传送方法、物联网系统及相应装置 | |
US20180157562A1 (en) | Virtual machine-based data transmission method, apparatus and system | |
CN110324115B (zh) | 一种数据传输方法、装置、存储介质及终端设备 | |
CN110035016B (zh) | 一种数据传输方法及装置 | |
CN107545424B (zh) | 一种数据监控处理方法、装置以及系统 | |
CN106060128B (zh) | 一种浏览器访问智能密钥设备的方法及装置 | |
CN106549989B (zh) | 一种数据传输方法及其系统、用户终端、应用服务器 | |
CN105159643A (zh) | 基于二维码的无线传屏认证方法及系统 | |
CN112383882B (zh) | 一种蓝牙换电中的数据传输方法及换电系统 | |
CN107632988A (zh) | 浏览器语音发送和接收方法、装置及语音对讲系统 | |
CN104348578A (zh) | 数据处理的方法及装置 | |
CN107294704B (zh) | 口令的生成方法、口令的执行方法及终端 | |
CN113612516B (zh) | 一种卫星通信数据包的压缩测试方法、系统及设备 | |
CN111787396B (zh) | 一种视频流解析方法及装置 | |
CN111767271B (zh) | 数据处理方法及装置 | |
CN107147561B (zh) | 一种基于xmpp协议的即时通讯方法及系统 | |
CN111740967A (zh) | 一种报文转换发送的方法、系统和电子设备 | |
CN102231667A (zh) | 串口设备注册的方法和装置 | |
CN109586979B (zh) | 一种报文传输方法及装置 | |
JP2011041107A (ja) | 移動体通信用デバイス試験システム及び試験方法 | |
CN113630404B (zh) | 一种协议报文的传输方法、装置、存储介质及终端 | |
CN103176970A (zh) | 一种检索方法及检索系统 | |
CN107979631B (zh) | 数据同步的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |