电信企信通2.0_API-jar包说明
- 格式:doc
- 大小:135.50 KB
- 文档页数:8
MMS服务器端开发包接口API使用说明书版本:V2.0深圳天勺电力软件有限公司深圳中国1.开发包简介该开发包根据已经正式发行的IEC61850最新版本开发而成,采用C语音编写,可跨平台使用。
为了最大限度地简化使用,完全封装了IEC61850中的诸多底层细节和各种复杂模型的实现逻辑。
用户利用它作开发的时候无需了解底层细节,只需要调用功能接口函数完成相应的功能研发,具有方便、快捷的优点。
本接口说明文档为接口全集,客户可以根据具体业务选择相应的接口进行调用。
本开发包既可以用在开发基于IEC61850标准的所有设备中(包括各个应用领域),也可以集成在网关机和通信管理机中。
现场运行稳定可靠,调用简单高效。
2.接口描述2.1获取节点数据路径函数函数声明char*get_path_by_node(TREE_NODE*treeNode)功能可通过该接口获取当前指定节点的路径参数TREE_NODE*treeNode:节点对象指针返回值数据路径字符串(不带fc)示例char*path=get_path_by_node(treeNode);2.2日志完整性周期服务函数函数声明void intgPdLog(SCL_INFO*ied)功能使用线程将该接口执行,可启动日志服务的完整性周期服务参数SCL_INFO*ied:模型信息对象指针返回值无示例intgPdLog(ied);2.3设置模型文件路径函数函数声明int SZTS_set_doc_path(char*theDocPath)功能设置模型文件路径,用于解析指定的模型文件参数char*theDocPath:模型文件路径返回值成功:1,失败:0示例int result=SZTS_set_doc_path(theDocPath);2.4获取设备节点函数函数声明SCL_INFO*SZTS_get_all_ied_node()功能解析模型文件中的IED节点,做成链表,并返回链表的头节点参数无返回值模型文件中IED节点链表头节点示例SCL_INFO*sclInfo=SZTS_get_all_ied_node();2.5拷贝树函数函数声明TREE_NODE*cp_tree_node_link(TREE_NODE*srcHead)功能拷贝一个树对象的全部信息参数TREE_NODE*srcHead:需要拷贝树对象的头节点返回值拷贝出来的树对象的头节点示例TREE_NODE*treeNode=cp_tree_node_link(srcHead);2.6通过路径获取节点函数函数声明TREE_NODE*get_tree_node_by_path(char*path)功能可获取指定路径的节点对象参数char*path:需要获取的节点的路径(不带FC)返回值路径对应的节点对象示例TREE_NODE*treeNode=get_tree_node_by_path(path);2.7通过路径获取节点函数函数声明TREE_NODE*get_tree_node_by_path_new(char*path)功能可获取指定路径的节点对象参数char*path:需要获取的节点的路径(带FC)返回值路径对应的节点对象示例TREE_NODE*treeNode=get_tree_node_by_path_new(path);2.8获取当前时间函数函数声明char*get_time()功能获取字符串时间格式的当前系统时间参数无返回值字符串时间格式的当前系统时间示例char*nowTime=get_time();2.9获取报告控制块信息函数函数声明RPT_CTRL*get_rpt_ctrl_by_ied_name(char*iedName)功能解析模型文件中指定的IED节点下的全部报告控制块,并生成链表,返回链表的头节点参数char*iedName:设备IED节点名称返回值指定IED节点下的报告控制块链表头节点示例RPT_CTRL*rptCtrl=get_rpt_ctrl_by_ied_name(iedName);2.10根据报告控制块最大使能数拷贝报告控制块信息节点函数函数声明RPT_CTRL*copy_rpt_ctrl_link(RPT_CTRL*head)功能按照模型文件中的最大使能报告控制块的参数配置,处理并实例化出对应最大使能个数的报告控制块参数RPT_CTRL*head:报告控制块链表的头节点返回值经过拷贝处理后的报告控制块链表的头节点示例RPT_CTRL*cp=copy_rpt_ctrl_link(head);2.11获取模型节点信息函数函数声明TREE_NODE*get_tree_node_link_by_ied_name(char*iedName)功能解析模型文件中指定的IED节点的全部数据对象节点,并生成树对象,返回树对象的头节点参数char*iedName:设备IED节点名称返回值指定IED节点下的模型节点树结构的头节点示例TREE_NODE*treeNode=get_tree_node_link_by_ied_name(iedName);2.12获取定值控制块信息函数函数声明SETTING_CTRL*get_setting_ctrl_by_ied_name(char*iedName)功能解析模型文件中指定的IED节点下的全部定值控制块,并生成链表,返回链表的头节点参数char*iedName:设备IED节点名称返回值指定IED节点下的定值控制块链表头节点示例SETTING_CTRL*settingCtrl=get_setting_ctrl_by_ied_name(iedName);2.13获取日志控制块信息函数函数声明LOG_CTRL*get_log_ctrl_by_ied_name(char*iedName)功能解析模型文件中指定的IED节点下的全部日志控制块,并生成链表,返回链表的头节点参数char*iedName:设备IED节点名称返回值指定IED节点下的日志控制块链表头节点示例LOG_CTRL*logCtrl=get_log_ctrl_by_ied_name(iedName);2.14获取数据集信息函数函数声明DATASET*get_dataSet_by_ied_name(char*iedName)功能解析模型文件中指定的IED节点下的全部数据集,并生成链表,返回链表的头节点参数char*iedName:设备IED节点名称返回值指定IED节点下的数据集链表头节点示例DATASET*dataset=get_dataSet_by_ied_name(iedName);2.15设置创建数据集保存路径函数函数声明int SZTS_set_create_dataSet_save_path(char*path)功能自主创建的数据集保存的dataSet.xml文件的所在路径,用于解析自主创建的数据集信息参数char*path:自主创建的数据集保存的dataSet.xml文件的所在路径返回值成功:1,失败:0示例int result=SZTS_set_create_dataSet_save_path(path);2.16解析创建的持久数据集函数函数声明void get_dataSet_self(DATASET*dataSetHead,SCL_INFO*ied)功能解析创建并保存在dataSet.xml中的自主创建的持久型数据集参数DATASET*dataSetHead:数据集链表头节点SCL_INFO*ied:指定得IED设备对象节点返回值无示例get_dataSet_self(dataSetHead,ied);2.17获取GOOSE函数函数声明GOOSE_INFO*get_goose_info_link_by_ied_name(char*iedName)功能解析模型文件中指定的IED节点下的全部GOOSE控制块,并生成链表,返回链表的头节点参数char*iedName:设备IED节点名称返回值指定IED节点下的GOOSE控制块链表头节点示例GOOSE_INFO*goossInfo=get_goose_info_link_by_ied_name(iedName);2.18获取SV函数函数声明SMV_INFO*get_smv_info_link_by_ied_name(char*iedName)功能解析模型文件中指定的IED节点下的全部MSV控制块,并生成链表,返回链表的头节点参数char*iedName:设备IED节点名称返回值指定IED节点下的MSV控制块链表头节点示例SMV_INFO*smvInfo=get_smv_info_link_by_ied_name(iedName);2.19设置模型节点的实例化初始值函数函数声明void set_instance_val_to_node(char*iedName)功能对指定的IED节点下的树对象中的数据节点,赋予模型文件中实例化部分对应的实例化值参数char*iedName:设备IED节点名称返回值无示例set_instance_val_to_node(iedName);函数声明S_ADDR_MAP*get_s_addr_map(char*iedName)功能解析模型文件中短地址,并与对应的点的索引路径形成映射关系,生成链表,并返回链表的头节点参数char*iedName:设备IED节点名称返回值短地址与节点路劲映射的链表的头节点(节点路径不带FC)示例S_ADDR_MAP*sAddr=get_s_addr_map(iedName);2.21缓存报告服务函数函数声明void buffDataReport(SCL_INFO*ied)功能开启缓存报告的缓存事件以及缓存报告的发送服务,该方法内部通过while 循环进行间歇遍历,无退出动作,建议使用独立线程启动该服务参数SCL_INFO*ied:设备IED节点对象返回值无示例buffDataReport(ied);2.22非缓存报告服务函数函数声明void unBuffDataReport_bufTm(SCL_INFO*ied)功能开启非缓存报告的缓存事件以及其缓存事件报告的发送服务,该方法内部通过while循环进行间歇遍历,无退出动作,建议使用独立线程启动该服务参数SCL_INFO*ied:设备IED节点对象返回值无示例unBuffDataReport_bufTm(ied);2.23完整性周期报告服务函数函数声明void unBuffDataReport_bufTm(SCL_INFO*ied)功能开启非缓存报告的缓存事件以及其缓存事件报告的发送服务,该方法内部通过while循环进行间歇遍历,无退出动作,建议使用独立线程启动该服务参数SCL_INFO*ied:设备IED节点对象返回值无示例unBuffDataReport_bufTm(ied);函数声明CFG_FILE*SZTS_readCfgFile(char*fileName)功能解析配置文件的信息,并生成存放配置文件信息的内存对象参数char*fileName:.cfg后缀的配置文件的路径返回值配置文件的信息对象示例CFG_FILE*cfgInfo=SZTS_readCfgFile(fileName);2.25解析获取模型文件函数函数声明SCL_INFO*SZTS_sclParse(CFG_FILE*cfgFile)功能解析配置文件中配置的模型文件路径、设备名,访问点对应的模型文件的全部数据节点信息,生成链表对象,并返回链表头节点参数CFG_FILE*cfgFile:.cfg配置文件信息对象返回值设备信息对象链表头节点示例SCL_INFO*sclInfo=SZTS_sclParse(cfgFile);2.26启动服务器函数函数声明int SZTS_startServer()功能开启服务器监听和接收消息服务,服务器对象默认为模型文件中的第一个IED,该方法内部通过while循环进行间歇遍历,无退出动作,建议使用独立线程启动该服务参数无返回值有返回值即为服务运行结束,无返回值即为服务运行中示例int result=SZTS_startServer();2.27启动指定的服务器函数函数声明int SZTS_start_server_by_ied(SCL_INFO*ied)功能开启服务器监听和接收消息服务,服务器对象为指定的一个IED,该方法内部通过while循环进行间歇遍历,无退出动作,建议使用独立线程启动该服务参数SCL_INFO*ied:设备IED节点对象返回值有返回值即为服务运行结束,无返回值即为服务运行中示例int result=SZTS_start_server_by_ied(ied);2.28停止服务器函数声明int SZTS_stopServer()功能停止服务器监听和接收消息服务,停止的服务器对象默认为模型文件中的第一个IED参数无返回值有返回值即为服务运行结束,无返回值即为服务运行中示例int result=SZTS_stopServer();2.29停止指定的服务器函数函数声明int SZTS_stop_server_by_ied(SCL_INFO*ied)功能停止服务器监听和接收消息服务,停止的服务器对象为指定的一个IED 参数SCL_INFO*ied:设备IED节点对象返回值有返回值即为服务运行结束,无返回值即为服务运行中示例int result=SZTS_stop_server_by_ied(ied);2.30设置对应路径模型节点值函数函数声明int setNodeValueByPath(char*path,char*value)功能通过节点路径更新节点值,方法内部校验并处理相关的非缓存报告、缓存报告、日志业务参数char*path:需要修改的节点路径(带FC)char*value:目标值返回值1:改值成功,0:改值失败示例int result=setNodeValueByPath(path,value);2.31设置对应路径模型节点值-只设置值函数函数声明int setNodeValueByPathOnly(char*path,char*value)功能通过节点路径更新节点值,只更新值,不产生报告事件、日志事件参数char*path:需要修改的节点路径(带FC)char*value:目标值返回值1:改值成功,0:改值失败示例int result=setNodeValueByPathOnly(path,value);2.32获取设备mac地址函数函数声明void get_mac_address(char*mac_address)功能获取当前设备的mac地址,存放到指定的内存空间参数char*mac_address:已分配可容纳mac地址空间的字符串指针返回值设备mac地址示例get_mac_address(char*mac_address);2.33缓存报告控制块的预留时间超时校验函数函数声明void handle_buffer_rptCtrl_client_resv_check()功能开启缓存报告控制块预留时间的超时检测机制服务,对每个TCP连接在关联过缓存报告控制块的情况中,在失去关联时,进行设定的缓存报告控制块预留时间进行超时校验,在超时时间到达前,除最近一次关联过该缓存报告控制块的TCP连接可设置并使用该缓存报告控制块,其他的TCP连接不可设置和使用;倘若在超时间内最近一次关联该缓存报告控制块的TCP连接未继续关联该缓存报告控制块,则取消预留限制,任何TCP连接均可对此缓存报告控制块进行设置和使用;该方法内部通过while循环进行间歇遍历,无退出动作,建议使用独立线程启动该服务参数无返回值无示例handle_buffer_rptCtrl_client_resv_check();2.34客户端连接信息回调函数函数原型定义typedef int(*connectInfoFun)(char*ip,int port,int status);函数全局变量connectInfoFun connectInfo_fun;注册回调函数方法extern int regist_connectInfoFun(connectInfoFun f);输入char*ip:连接过来的客户端ipint port:连接过来的客户端端口int status:连接过来的客户端状态返回预留返回值,未使用用途可通过该回调获得客户端的连接信息2.35接收客户端报文信息回调函数函数原型定义typedef int(*recvDataFun)(char*data,int length);函数全局变量recvDataFun recvData_fun;注册回调函数方法extern int regist_recvDataFun(recvDataFun f);输入char*data:接收的报文数据int length:接收的报文长度返回预留返回值,未使用用途可通过该回调获得客户端的请求报文信息2.36判断否允许写入文件回调函数函数原型定义typedef int(*fileDataIsOkFun)(char*path);函数全局变量fileDataIsOkFun fileDataIsOk_fun;注册回调函数方法extern int regist_fileDataIsOkFun(fileDataIsOkFun f);输入char*path:文件路径返回1:允许写文件操作,0:不允许写文件操作用途可通过该回调可实现对写文件动作的允许与否2.37遥控选择回调函数函数原型定义typedef int(*selectFun)(char*reference);函数全局变量selectFun select_fun;注册回调函数方法extern int regist_selectFun(selectFun f);输入char*reference:遥控点路径返回1:允许选择,0:不允许选择用途可通过该回调实现对遥控选择的判断介入2.38遥控带值选择回调函数函数原型定义typedef int(*selectWithValueFun)(char*reference,Data*ctlVal,int*addCase);函数全局变量selectWithValueFun selectWithValue_fun;注册回调函数方法extern int regist_selectWithValueFun(selectWithValueFun f);输入char*reference:遥控点路径Data*ctlVal:控制值输出int*addCase:不允许选择原因返回1:允许带值选择,0:不允许带值选择用途可通过该回调实现对遥控带值选择的判断介入2.39遥控取消回调函数函数原型定义typedef int(*cancelFun)(char*reference,Data*ctlVal,int*addCase);函数全局变量cancelFun cancel_fun;注册回调函数方法extern int regist_cancelFun(cancelFun f);输入char*reference:遥控点路径Data*ctlVal:控制值输出int*addCase:不允许取消原因返回1:允许取消,0:不允许取消用途可通过该回调实现对遥控取消的判断介入2.40遥控执行回调函数函数原型定义typedef int(*operateFun)(char*reference,Data*ctlVal,int*addCase);函数全局变量operateFun operate_fun;注册回调函数方法extern int regist_operateFun(operateFun f);输入char*reference:遥控点路径Data*ctlVal:控制值输出int*addCase:不允许遥控执行的原因返回1:允许遥控执行,0:不允许遥控执行用途可通过该回调实现对遥控执行的判断介入2.41定值切区回调函数函数原型定义typedef int(*selectActiveSgFun)(char*reference,int sgNumber);函数全局变量selectActiveSgFun selectActiveSg_fun;注册回调函数方法extern int regist_selectActiveSgFun(selectActiveSgFun f);输入char*reference:定值控制块路径int sgNumber:切区的区号返回预留返回值,未使用用途可通过该回调获取定值切区的相关信息2.42改值操作回调函数函数原型定义typedef int(*setDataValuesFun)(char*reference,char*fc);函数全局变量setDataValuesFun setDataValues_fun;注册回调函数方法extern int regist_setDataValuesFun(setDataValuesFun f);输入char*reference:改值对象的路径char*fc:改值对象的FC返回1:允许改值,0:不允许改值用途可通过该回调实现改值操作的判断介入2.43改值操作回调-sv取代函数函数原型定义typedef int(*setSVDataValuesFun)(char*reference,char*value);函数全局变量setSVDataValuesFun setSVDataValues_fun;注册回调函数方法extern int regist_setSVDataValuesFun(setSVDataValuesFun f);输入char*reference:改值对象的路径char*value:目的值返回1:允许改值,0不允许改值用途:可通过该回调实现取代的业务逻辑,在改值操作时,优先执行此回调中实现的取代业务。
-jar命令用法-概述说明以及解释1.引言1.1 概述在Java开发中,-jar命令是一个经常使用的命令,用于执行打包为jar 文件的Java应用程序。
它为我们提供了一种方便的方式来启动和运行独立的Java应用程序,无需考虑类路径的问题。
使用-jar命令时,我们只需要提供jar文件的路径作为参数,Java虚拟机(JVM)会自动搜索并加载jar文件中的主类作为应用程序的入口点。
这使得我们可以将整个应用程序打包到一个jar文件中,方便部署和发布。
与传统的java命令相比,-jar命令有一些独特的特性。
首先,它会忽略类路径(即不会加载classpath中的类),而是只加载jar文件中的类。
这使得我们可以确保应用程序只使用了我们想要的类,而不会引入其他不必要的类或版本冲突。
其次,-jar命令还可以让我们在jar文件中指定一个清单文件(manifest),其中可以包含额外的元数据和配置信息。
通过这种方式,我们可以在运行应用程序时传递一些参数或配置信息,而不必在命令行中逐个指定。
另外,-jar命令还能够处理一些常见的问题,比如自动解压缩jar文件、加载外部依赖库等。
这些功能使得我们可以更加方便地打包和分发我们的应用程序,减少了很多繁琐的配置和部署步骤。
总之,-jar命令是Java开发中一个非常有用的工具,它简化了应用程序的启动和部署过程,提高了开发效率。
在本文的接下来部分,我们将详细介绍如何正确地使用-jar命令,以及一些常见问题的解决方法。
1.2 文章结构文章结构部分的内容:文章结构是指文章的整体框架和组织方式,它对于读者来说具有重要的指导作用。
本文将按照以下结构展开介绍-jar命令的用法。
首先,文章将引言部分,对本文的主题进行概述。
我们将介绍-jar命令在Java开发中的重要性以及它的基本功能和作用。
同时,我们还会介绍本文的文章结构和目的,以便读者可以清晰地了解本文的内容和目标。
接下来,正文部分将涵盖两个要点。
cmd调用jar方法摘要:1.CMD调用JAR文件的基本方法2.如何运行Java程序3.常见问题及解决方案正文:CMD调用JAR文件是一种常见的操作方式,尤其在Windows操作系统中。
下面将详细介绍CMD调用JAR文件的方法以及相关实用技巧。
一、CMD调用JAR文件的基本方法要使用CMD命令调用JAR文件,需要知道JAR文件的完整路径。
假设JAR文件名为“example.jar”,存放在目录“C:example”中,可以使用以下命令:```java -jar C:exampleexample.jar```此外,还可以使用“cd”命令切换到JAR文件所在目录,然后再调用JAR 文件:```cd C:examplejava -jar example.jar```二、如何运行Java程序要运行Java程序,除了使用JAR文件外,还可以使用Java源代码。
首先,需要将Java源代码编译成JAR文件,然后使用以下命令运行:```java -jar filename.jar```其中,“filename”为JAR文件的名称。
三、常见问题及解决方案1.权限问题:在某些情况下,可能无法直接运行JAR文件。
此时,可以尝试使用“runas”命令,以管理员身份运行CMD:```runas /user:admin cmd```然后,在CMD中调用JAR文件。
2.路径问题:如果JAR文件不在系统路径中,需要手动指定完整路径。
可以使用“set”命令设置环境变量,以便在后续命令中引用:```set PATH=C:examplebin;%PATH%```然后,再次调用JAR文件。
3.版本问题:如果遇到Java版本不兼容的问题,可以尝试升级Java版本或使用对应版本的JAR文件。
总之,CMD调用JAR文件是一种简单实用的方法,只需掌握基本命令和注意事项,即可轻松实现。
在实际操作过程中,遇到问题要善于分析原因,寻找解决方案。
JAR包介绍大全用途作用详解JAVAJAR(Java Archive)是Java的一种标准压缩文件格式,它是一种将多个Java类文件、资源文件、配置文件和元数据文件打包成一个文件的方式。
JAR包的使用具有很多作用和用途,下面将详细介绍。
1. 代码打包和发布:通过将Java类文件打包成JAR包,可以方便地将整个项目的代码进行打包和发布。
这样可以简化代码的传输、分发和部署。
2. 代码模块化:JAR包可以将一组相关的Java类打包成一个模块,便于代码的管理和维护。
不同的模块可以根据需要进行组合,提高代码的可复用性和可扩展性。
3.应用程序部署:将应用程序的所有依赖的类和资源文件统一打包到一个JAR包中,方便进行部署和发布。
可以减少部署过程中的错误和问题。
4. 库文件管理:JAR包可以用来管理和分发Java库文件。
开发者可以将常用的库文件打包成JAR包,并在其他项目中使用。
5. 类库扩展:在Java中,可以通过类路径(CLASSPATH)来指定需要加载的类库。
而JAR包可以通过设置类路径来扩展Java的类库。
只需将JAR包加入到类路径中,就可以在代码中使用其中的类和方法。
6.版本管理:JAR包可以用来管理和分发不同版本的软件。
通过使用不同的JAR包命名规则或目录结构,可以区分不同版本的软件,方便用户选择特定版本的功能和功能。
7.防止类文件冲突:当使用多个第三方类库时,可能会发生类文件冲突的情况。
通过将每个类库打包成一个JAR包,并且每个类库中的类在包的结构中唯一,可以避免类文件冲突的问题,保证程序的正确运行。
8. 加载器和类加载:在Java中,类加载器负责将类文件加载到Java虚拟机中。
而JAR包是可以被类加载器加载的,可以通过类加载器的机制来加载JAR包中的类。
9. Java application扩展:JAR包可以作为Java应用程序的扩展,可以在运行时动态地加载和使用JAR包中的类和方法。
这种机制可以实现插件式的应用程序设计。
合作接口文档(For CP)(Ver0.1)目录1 Http方式 (3)1.1 给用户发送短信 (3)1.2 接收短信状态报告 (4)1.3 接收用户短信 (4)2 自定义说明 (5)1Http方式1.1 给用户发送短信(1)短信发送http://202.85.214.45:20005/shttp.recmt?ua=xxxx&pw=xxxx&gwid=x&mobile=138********,1 5711085470&msg=xxx&stime=20110315123634(2)返回值<?xml version="1.0" encoding ="gb2312"?><Root><Result>x</Result><p><m></m><i></i></p><p><m></m><i></i></p></Root>(3)参数说明result:状态m:手机号码i:消息Id(4)result状态含义1.2 接收短信状态报告状态报告根据msgid匹配,“YourUrl”由合作方提供,通道方把msgid和stat数据传给合作方。
YourUrl?msgid=xxxxxx&stat=DELIVRD返回值:<?xml version="1.0" encoding="gb2312"?><Root>< result ></result>< msgid ></ msgid ></Root>msgid:消息IDstat:短信状态报告result:状态,请参考1.1 result状态含义。
CoreMail2.0 Standard EditionDoc Version 1.0API使用手册(邮件到达专用)Tebie Limited香港普智资讯科技有限公司2002.11COREMAIL2.0 C API1.Coremail API工作结构图Coremail API 在系统中的位置图。
2.API配置文件说明在Coremail系统配置中,apisvr.conf是配置Coremail API的系统文件。
具体配置如下:[Global]User="coremail" #执行程序的用户Unlimit="1" #系统执行程序是否有Unlimit设置Daemon="0" #是否为后台执行(1—yes,0—no)DebugLevel="0" #是否为Debug级别日志LogFile="/home/coremail/logs/apisvr.log" #普通日志文件路径ErrorLogFile="/home/coremail/logs/apisvrerr.log" #出错日志文件路径[SERVER SETTING]Port="2700" #服务监听端口[COMMAND SETTING]Port="2702" #服务命令端口[CLIENT SETTING]ServerIP="127.0.0.1" #API安装服务器的IP地址[welcome] #如果有此配置段则用API注册用户成功后发欢迎信,filename指定欢迎信模版filename= “欢迎信模版路径”3.CoreMail 系统提供的API包括功能1 . 增加新用户2 . 修改用户资料3 . 删除用户4 . 读取用户资料5 . 检查用户是否存在6 . 登陆用户7 . 用户退出登陆8 . 提供"临时空间",让CGI存放session信息9 . 让CGI读取自己存放的session信息10. 检查session是否已经过期11. 刷新session,防止session过期12. 认证用户密码13. 扫描病毒邮件14. 增加虚拟域15. 修改虚拟域16. 删除虚拟域17. 检查虚拟域信息18. 查询域用户总数19. 给用户过滤器添加过滤规则API 以网络接口(socket)的方式提供,即API 程序把有关功能发送给CoreMail 的API server, 然后由server 执行具体任务。
中国电信短信接入A P I使用手册(D B接口)中国电信股份XXXX互联网与增值业务运营中心2009年10月目录一、引言31.1 编写目的31.2 背景说明31.3 术语定义3二、概述42.1 接口功能42.2 接口组成4三、接口介绍53.1 网络结构53.2 运行环境6操作系统6数据库系统63.3 数据队列6发送队列表6接收队列表7回执队列表73.4 DB接口开发说明8四、使用指导84.1 开发步骤8一、引言1.1 编写目的中国电信提供了强大的短信接入机制。
本手册用于指导客户利用中国电信提供的短信接口进行其他需要短信功能的新系统开发或原有系统的短信功能扩展。
本手册的阅读对象为需要采用中国电信短信接入API完成客户开发的设计人员与编码人员。
1.2背景说明本手册适用于中国电信SMGP协议(V)短信网关接入。
1.3术语定义二、概述2.1 接口功能中国电信短信接入API是根据中国电信SMGP协议开发的,封装后的用户开发接口。
接口可降低用户接入开发的难度,提升接入效率。
接口主要功能包括:⏹支持MT短信的发送。
⏹支持MO短信的接收。
⏹支持短信回执的接收。
2.2 接口组成中国电信短信接入API包括如下部分:三、接口介绍3.1 网络结构网络结构说明:1、行业短信网关接入模块:提供到各地短信中心的接入功能,同时与全国行业应用平台实现互连;2、行业短信平台业务处理模块:主要完成短信上行和下行的业务处理,短信下发,无论是单发,还是群发,无论是单个用户,还是多个用户,都采用下发任务机制实现。
3、行业短信网关置于电信机房,集团客户端可通过互联网或专线与其连接。
4、集团客户端的各类信息系统是通过向接口数据库进行数据读写操作,实现短信上、下行。
3.2运行环境3.2.1操作系统DB接口程序支持WINDOWS NT/XP/2003/VISTA操作系统,暂不支持LINUX、UNIX 等。
3.2.2数据库系统DB接口自带ACCESS数据库,可在本机架设。
江苏电信企信通2.0系统
API接口说明
联创科技(南京)有限公司
11个类:MsgConst、 NetMd5 、NetMsgclient、Constants、Parse、ReturnMsgBean、UpMsgBean、AnswerBean、HeartBeatInit、HeartBeatPacket、HeartBeatTask
1个抽象类:ReceiveMsg
企信通API:NetMsgclient
1.API函数介绍
1.初始化函数 ,根据API用户名和密码等信息,初始化Socket连接
public NetMsgclient initParameters(String ipAddress,int port,String username,String
password,ReceiveMsg receiveMsg)
2.认证请求函数,根据用户名和密码登录至企信通API服务端进行认证。
返回类型 boolean 认证成功:true,认证失败:false
public boolean anthenMsg(NetMsgclient client)throws IOException
3.发送短信函数,登录成功后发送短信的函数。
返回类型 String,返回9位数的序列。
public String sendMsg (NetMsgclient client ,int sendType, String recPhone, String msg,int isNeedReport)说明
注:此函数是为在商信通已经成功注册并绑定计费号码和开通服务用的用户使用的
返回值类型 String 类型,sendMsg方法返回一个9位数的序列ID,具体为:6位时间(时分秒)+3位序列,用户可以在接收到该序列ID 时,可以在序列ID前边增加日期,在getAnswer (AnswerBean answerBean)方法中,可以通过answerBean.getSeqId()获得序列ID,和sedMsg方法返回的seqId来对应。
如果连接出现异常,sendMsg方法会返回16,用户也可以根据判断这个值来调用断开函数closeConn(这样就不使用jar包里自带),然后继续重新连接(参照发送消息流程说明)。
4.关闭连接的函数,NetMsgclient 类的closeConn函数
public void closeConn()说明:
调用该函数,即关闭发送短信的连接与接收短信回执的连接,调用断开函数后不要马上重连,需要休眠一段时间,比如1分钟。
5.接收下行短信返回状态及msgId的函数
public void getAnswer(AnswerBean answerBean)说明
public void getAnswer(AnswerBean answerBean)
使用时,需要继承jar包中的ReceiveMsg类,继承重写该类的getAnswer方法,企信通平台会将发送短信的响应传递到这个方法,用户重写时,将接收到的参数解析然后自行处理即可。
AnswerBean说明:
下行短信发送状态(即AnswerBean类的status属性)定义:
成功0
系统错误 1
帐号错误 2
密码错误 3
连接数超过限制 4
秒发送条目数超过限制 5
目的号码受限制 6
网络错误7
月发送条目数超过限制8
客户端关闭连接9
短信网关关闭连接10
超时退出11
连接数据库错误12
连接短信网关错误13
非法发送内容14
非法发送时间15
6.接收上行短信的函数
public void getUpMsg(UpMsgBean pMsgBean)说明
public void getUpMsg(UpMsgBean pMsgBean)
使用时,需要继承jar包中的ReceiveMsg类,继承重写该类的getUpMsg方法,企信通平台会将接收到的上行短信传递到这个方法,用户重写时,将接收到的参数解析然后自行处理即可
UpMsgBean说明:
7.接收回执的函数
public void getReturnMsg(ReturnMsgBean returnMsgBean)说明
注:此函数是为接收短信回执使用的
public void getReturnMsg(ReturnMsgBean returnMsgBean) 使用时,需要继承jar包中的ReceiveMsg类,继承重写该类的getReturnMsg方法,企信通平台会将接收到短信的回执传递到这个方法,用户重写时,将接收到的参数解析然后自行处理即可
ReturnMsgBean类说明
短信状态(即ReturnMsgBean类的msgStatus属性)定义:
短信错误代码,即(ReturnMsgBean类的msgErrStatus属性)定义:
2.发送消息流程说明
第一步编写接收类,实现接收上行短信及回执的抽象类ReceiveMsg 的继承类ReceiveImpl,(参照例程ReceiveDemo.java),实
现接接收下行短信返回的状态的函数getAnswer、接收下行短信回执的函数getReturnMsg和接收上行短信的函数getUpMsg;
第二步初始化 initParameters,将第一步实现的继承类ReceiveImpl作为参数传递至initParameters方法,初始化发送短信Socket;
第三步认证请求 anthenMsg ,登录至企信通平台进行认证;
第四步如果第三步返回true证明认证成功,则到第五步,否则返回第三步重新认证
(注:接收短信回执和上行短信,只需要完成以上操作步骤,企信通API 平台在接收到短信回执和上行短信时,会主动的调用ReceiveImpl的getAnswer、getReturnMsg,getUpMsg方法,将数据传递至这些方法,不需要再显式的调用这几个方法来实现接收功能)
第五步发送函数 sendMsg
备注:
1、在发送短信时,第二、三步只需执行一次即可,即:初始化连接、认证只需要一次,再次发短信时直接调用第五步就行,在发送短信时要保持连接不要断开,才能正确的接收返回的序列ID、响应、msgID、回执以及上行短信。
2、在服务运行过程中,如果网络出现异常,该jar包会检测到,并自动重新连接至企信通API服务端。
3、调用关闭连接的函数closeConn之后,重新使用API请从第二步开始。
4、用户可以不使用该包中的自动重连功能,自己来实现断开重连功能。
具体实现可以根据判断sendMsg方法的返回值是否16,如果是,则调用断开连接函数closeConn,然后休眠一分钟(一定要休眠一分钟左右,保证连接断开),然后依照上述流程的第二步开始重新连接。