我在我的jpos中使用Base24通道,我想在我的预告片后添加额外的字符,任何人都可以分享你的想法如何添加它。
jtoj6r0c1#
这里有一个可能的实现,这个实现不会检查接收到的trailer是否与自定义trailer匹配,但是如果需要,您可以添加该代码。
public class MyCustomBase24 extends Base24Channel { byte[] customTrailer = ...; protected sendMessageTrailer() { super.sendMessageTrailer(); serverOut.write(customTrailer); // } protected byte[] streamReceive() { byte[] d = super.streamReceive(); //read the extra trailer chars byte[] extra = new byte[customTrailer.length]; serverIn.readFully(extra); return d; } }
这个类调用Base24Channel的sendMessageTrailer来发送0x03,然后在接收时发送额外的字节,在Base24Channel停止接收后,0x03读取额外的字节。我假设这些额外的字节也存在于传入的消息中,如果没有,您就不需要重写streamReceive方法。然后,您只需要用您的自定义类替换XML部署描述符的class属性,而不是org.jpos.iso.channel.Base24Channel。
Base24Channel
sendMessageTrailer
0x03
streamReceive
class
org.jpos.iso.channel.Base24Channel
1条答案
按热度按时间jtoj6r0c1#
这里有一个可能的实现,这个实现不会检查接收到的trailer是否与自定义trailer匹配,但是如果需要,您可以添加该代码。
这个类调用
Base24Channel
的sendMessageTrailer
来发送0x03
,然后在接收时发送额外的字节,在Base24Channel
停止接收后,0x03
读取额外的字节。我假设这些额外的字节也存在于传入的消息中,如果没有,您就不需要重写
streamReceive
方法。然后,您只需要用您的自定义类替换XML部署描述符的
class
属性,而不是org.jpos.iso.channel.Base24Channel
。