2012-10-02 86 views
3

我正在尝试使用logica SMPP API实现SMPP客户端。将Logica SMPP异步模式下的请求响应相关联

我面临的问题是,如何在异步模式下将请求pdu与响应pdu进行映射?我以为我可以使用CommandId和序列号来做到这一点。但是由logica模拟器返回的CommandId不等于请求CommandId。

例子:

Enquire Link Comman ID (Request) = 21 
Enquire Link Comman ID (async response from simulator) = -2147483627 

请告诉我,我怎么可以在异步模式下响应事件请求事件映射。

回答

0

查看protocol definition PDF第16页的表6.1,可以发现用于关联的字段不是CommandID(定义了请求的类型),而是Sequence No

从文献:

序列号允许请求和响应相关联。 此参考号码的分配由发起人负责,他应确保该号码对于每个提交的请求都是单调增加的 。关联的响应数据包 必须保留此字段。

+0

感谢您的回复。在映射过程中,我必须确定事件,因为它们将是多个事件的响应,这就是为什么我需要CommanID。 – Sas

+0

从Doc我得到了答案。我所需要做的就是取消设置31位(通常,响应命令标识符将与相应的请求命令标识符相同,但是 的位31已设置。) – Sas