Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.43 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package inquirystrestests;
  7.  
  8. import java.io.BufferedReader;
  9. import java.io.FileNotFoundException;
  10. import java.io.FileReader;
  11. import java.io.FileWriter;
  12. import java.io.IOException;
  13. import java.io.InputStreamReader;
  14. import java.io.PrintWriter;
  15. import java.net.Socket;
  16. import java.text.SimpleDateFormat;
  17. import java.util.HashMap;
  18. import java.util.Map;
  19. import org.joda.time.DateTime;
  20. import org.joda.time.Seconds;
  21.  
  22. /**
  23.  *
  24.  * @author anggi
  25.  */
  26. public class InquiryStresTests {
  27.  
  28.     private final static String IP_SERVER = "103.16.138.19";
  29.     private final static Integer PORT_SERVER = 9999;
  30.     private final static SimpleDateFormat formatDateTime = new SimpleDateFormat("yyyyMMddhhmmss");
  31.     private final static String fileResultName = "/home/anggi/Desktop/result_tests.csv";
  32.  
  33.     public static void main(String[] args) throws IOException {
  34.         createHeader();
  35.         String csvFile = "/home/anggi/Desktop/Id_Pelanggan.csv";
  36.         BufferedReader br = null;
  37.         String line = "";
  38.         String cvsSplitBy = ",";
  39.         try {
  40.             br = new BufferedReader(new FileReader(csvFile));
  41.             while ((line = br.readLine()) != null) {
  42.                 String[] idpel = line.split(cvsSplitBy);
  43.                 asyncServiceMethod(idpel[0]);
  44.             }
  45.         } catch (FileNotFoundException e) {
  46.             e.printStackTrace();
  47.         } catch (IOException e) {
  48.             e.printStackTrace();
  49.         } finally {
  50.             if (br != null) {
  51.                 try {
  52.                     br.close();
  53.                 } catch (IOException e) {
  54.                     e.printStackTrace();
  55.                 }
  56.             }
  57.         }
  58.  
  59.     }
  60.  
  61.     public static void createHeader() throws IOException {
  62.         FileWriter writer = new FileWriter(fileResultName);
  63.         writer.append("idpel       ");
  64.         writer.append('|');
  65.         writer.append("stan        ");
  66.         writer.append('|');
  67.         writer.append("waktu_request ");
  68.         writer.append('|');
  69.         writer.append("waktu_response");
  70.         writer.append('|');
  71.         writer.append("selisih  ");
  72.         writer.append('|');
  73.         writer.append("response_code");
  74.         writer.append('\n');
  75.         writer.flush();
  76.         writer.close();
  77.     }
  78.  
  79.     public static void writeResult(Map<String, String> data) {
  80.         try {
  81.             FileWriter writer = new FileWriter(fileResultName, true);
  82.  
  83.             writer.append(data.get("idPel"));
  84.             writer.append('|');
  85.             writer.append(data.get("stan"));
  86.             writer.append('|');
  87.             writer.append(data.get("waktu_request"));
  88.             writer.append('|');
  89.             writer.append(data.get("waktu_response"));
  90.             writer.append('|');
  91.             writer.append(data.get("selisih"));
  92.             writer.append('|');
  93.             writer.append(data.get("response_code"));
  94.             writer.append('\n');
  95.  
  96.             //generate whatever data you want
  97.             writer.flush();
  98.             writer.close();
  99.         } catch (IOException e) {
  100.             e.printStackTrace();
  101.         }
  102.     }
  103.  
  104.     public static void sendMessage(String IdPel) throws IOException {
  105.         DateTime requestTime = new DateTime();
  106.         Socket clientSocket = new Socket(IP_SERVER, PORT_SERVER);
  107.         clientSocket.setSoTimeout(10 * 1000);
  108.         String stan = "000569536414";
  109.  
  110.         Map<String, String> message = new HashMap<>();
  111.         StringBuilder messageRequest = new StringBuilder();
  112.         messageRequest.append("2100"); //MTI
  113.         messageRequest.append("4030004180810000");//BITMAP
  114.         messageRequest.append("05"); // length of PAN
  115.         messageRequest.append("99501"); // PAN
  116.         messageRequest.append(stan); //STAN
  117.         messageRequest.append(formatDateTime.format(requestTime.toDate())); //TRANSACTION DATETIME
  118.         messageRequest.append("6021"); //MERCHANT CODE
  119.         messageRequest.append("07"); //Length of Bank Code
  120.         messageRequest.append("4510017"); //Bank Code
  121.         messageRequest.append("07"); //Length of CID
  122.         messageRequest.append("4511014"); //CID
  123.         messageRequest.append("L123            "); //Terminal ID
  124.         messageRequest.append("019"); //length of additional Private Data
  125.  
  126. //additional Private Data (bit 48)
  127. //        =======================================================================
  128.         messageRequest.append("0000000"); // Switcher id
  129.         messageRequest.append(IdPel); // ID PEL
  130.  
  131.         PrintWriter outgoing = new PrintWriter(clientSocket.getOutputStream());
  132.         InputStreamReader incoming = new InputStreamReader(clientSocket.getInputStream());
  133.         String trailer = new String(new char[]{10});
  134.  
  135.         //kirim
  136.         System.out.println("send message");
  137.         outgoing.print(messageRequest.toString() + trailer);
  138.         outgoing.flush();
  139.  
  140.         int data;
  141.         StringBuffer sb = new StringBuffer();
  142.         while ((data = incoming.read()) != 10) {
  143.             sb.append((char) data);
  144.         }
  145.  
  146.         System.out.println("Rec. Msg [" + sb.toString() + "] len [" + sb.toString().length() + "]");
  147.         String[] xx = sb.toString().split("4511014");
  148.         String RC = xx[1].substring(0, 4);
  149.         DateTime responseTIme = new DateTime();
  150.         String selisih = Seconds.secondsBetween(requestTime.withMillisOfSecond(0), responseTIme.withMillisOfSecond(0)).getSeconds()+ " seconds";
  151.  
  152.         message.put("idPel", IdPel);
  153.         message.put("stan", stan);
  154.         message.put("waktu_request", formatDateTime.format(requestTime.toDate()));
  155.         message.put("waktu_response", formatDateTime.format(responseTIme.toDate()));
  156.         message.put("selisih", selisih);
  157.         message.put("response_code", RC);
  158.  
  159.         writeResult(message);
  160.         outgoing.close();
  161.         incoming.close();
  162.         clientSocket.close();
  163.  
  164.     }
  165.  
  166.     public static void asyncServiceMethod(final String idPel) {
  167.         Runnable task = new Runnable() {
  168.  
  169.             @Override
  170.             public void run() {
  171.                 try {
  172.                     sendMessage(idPel);
  173.                 } catch (Exception ex) {
  174.                     //handle error which cannot be thrown back
  175.                 }
  176.             }
  177.         };
  178.         new Thread(task, "ServiceThread").start();
  179.     }
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement