在一个SMPP请求中发送2提交_sm

时间:2015-05-14 15:09:17

标签: smpp jsmpp

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

如下图:

SMPP 436 SMPP Submit_sm(重新组合的短消息),Submit_sm(重新组合的短消息)

短消息对等,命令:Submit_sm,Seq:1093,Len:191 GSM短消息服务用户数据 短信Peer to Peer,命令:Submit_sm,Seq:1094,Len:191 GSM短消息服务用户数据

1 个答案:

答案 0 :(得分:0)

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

您的操作系统负责此缓冲,并且这并不罕见,因为一个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)。