0

如何仅在一个 SMPP 请求中发送 2 个不同的 submit_sm。这就像 2 个不同的 submit_sm 封装在一个 SMPP 请求中

如以下跟踪:

SMPP 436 SMPP Submit_sm(短消息重组),Submit_sm(短消息重组)

短信点对点,命令:Submit_sm,Seq:1093,Len:191 GSM短信服务用户数据 短信点对点,命令:Submit_sm,Seq:1094,Len:191 GSM短信服务用户数据

4

1 回答 1

0

您在跟踪中看到的“SMPP 请求”实际上是一个 TCP 数据包,其中包含命令类型为“submit_sm”的多个 SMPP 数据包。

您的操作系统负责这种缓冲,这并不罕见,因为一个 TCP 数据包的 MTU 大约为 1500 字节,并且根据 Paylaod,submit_sm 数据包小于 200 字节。

所以取决于你如何与你的网络套接字交互。如果在写入每个 SMPP 数据包后刷新,您将在一个 TCP 数据包中获得一个 submit_sm。否则将被缓冲直到达到 MTU。

在 jsmpp 中,pdu 发送器的默认实现在每个 smpp 数据包之后刷新输出流(请参阅https://github.com/uudashr/jsmpp/blob/master/jsmpp/src/main/java/org/jsmpp/DefaultPDUSender。 java#L216)。

您可以创建一个 SMPPSession 提供您自己的 PDUSender 实现,该实现不会在每个数据包之后刷新(请参阅https://github.com/uudashr/jsmpp/blob/master/jsmpp/src/main/java/org/jsmpp/session/ SMPPSession.java#L124)。

于 2015-05-14T18:45:15.647 回答