我使用JPOS发送和接收ISO 8583消息。 这是客户:
public static void main(String[] args) throws IOException, ISOException {
System.setProperty("java.net.preferIPv4Stack", "true");
EvnMsg msg = new EvnMsg();
ISO93APackager packager = new ISO93APackager();
msg.setPackager(packager);
msg.setMTI("1804");
msg.setAuditNumber("124125");
ASCIIChannel channel = new ASCIIChannel("Server_IP", PORT, packager);
channel.connect();
channel.send(msg);
channel.receive();
//channel.disconnect();
}
这是服务器:
public static void main(String[] args) throws IOException, ISOException {
ISO93APackager packager = new ISO93APackager();
ServerChannel channel = new ASCIIChannel (packager);
channel.accept(new ServerSocket(PORT));
ISOMsg isoMsg = channel.receive();
System.out.println("Received");
}
收到服务器消息,但问题是位图的值为-1
我犯了错误吗?哪种方式可以接收邮件?
答案 0 :(得分:1)
这是jPOS使用的内部表示,随意忽略这一事实;一旦频道调用ISOMsg的pack()
方法,就会正确生成位图。
一些评论:
EnvMsg
不属于jPOS,我假设你正在扩展ISOMsg
msg.setPackager
,频道会代表您处理QServer
类ChannelAdaptor
类QMUX