Sekarang buatlah sebuah class baru dan beri nama JPosServer dan simpan pada package id.web.martinusadyh.iso8583.jpos. Karena kita menggunakan library jPOS, maka implementasi Server kita tidak serumit yang pertama Dan inilah implementasi server kita yang menggunakan library jPOS :
- id.web.martinusadyh.iso8583.jpos.JPosServer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| package id.web.martinusadyh.iso8583.jpos;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jpos.iso.BaseChannel;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.ISOPackager;
import org.jpos.iso.ISORequestListener;
import org.jpos.iso.ISOServer;
import org.jpos.iso.ISOSource;
import org.jpos.iso.ServerChannel;
import org.jpos.iso.channel.ASCIIChannel;
import org.jpos.iso.packager.GenericPackager;
/**
*
* @author Martinus Ady H <mrt.itnewbies@gmail.com>
*/
public class JPosServer implements ISORequestListener {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws ISOException {
String hostname = "localhost";
int portNumber = 12345;
// membuat sebuah packager
ISOPackager packager = new GenericPackager("packager/iso93ascii.xml");
// membuat channel
ServerChannel channel = new ASCIIChannel(hostname, portNumber, packager);
// membuat server
ISOServer server = new ISOServer(portNumber, channel, null);
server.addISORequestListener(new JPosServer());
new Thread(server).start();
System.out.println("Server siap menerima koneksi pada port [" + portNumber+"]");
}
public boolean process(ISOSource isoSrc, ISOMsg isoMsg) {
try {
System.out.println("Server menerima koneksi dari ["+((BaseChannel)isoSrc).getSocket().getInetAddress().getHostAddress()+"]");
if (isoMsg.getMTI().equalsIgnoreCase("1800")) {
acceptNetworkMsg(isoSrc, isoMsg);
}
} catch (IOException ex) {
Logger.getLogger(JPosServer.class.getName()).log(Level.SEVERE, null, ex);
} catch (ISOException ex) {
Logger.getLogger(JPosServer.class.getName()).log(Level.SEVERE, null, ex);
}
return false;
}
private void acceptNetworkMsg(ISOSource isoSrc, ISOMsg isoMsg) throws ISOException, IOException {
System.out.println("Accepting Network Management Request");
ISOMsg reply = (ISOMsg) isoMsg.clone();
reply.setMTI("1810");
reply.set(39, "00");
isoSrc.send(reply);
}
}
|
Melihat perbedaan antara penulisan menggunakan library
jPOS dengan menggunakan
Socket biasa ??? Jika belum, mari kita lihat bagaimana implementasi untuk client-nya
No comments:
Post a Comment