package com.webank.bsp_query_agent; import java.io.*; import java.net.*; import org.apache.commons.lang.RandomStringUtils; import com.alibaba.fastjson.JSONObject; public class UdpClient { private static final int SERVER_PORT = 9301; private static final int CLIENT_PORT = 9401; private DatagramSocket dataSocket; private DatagramPacket sendPack; private DatagramPacket recvPack; private byte sendByte[]; private byte recvByte[]; private String recvStr; public UdpClient() { init(); } private DatagramPacket getSendPack(String str) { try { sendByte = str.getBytes(); return new DatagramPacket(sendByte, sendByte.length, InetAddress.getByName("localhost"), SERVER_PORT); } catch (Exception e) { e.printStackTrace(); } return null; } public static String toString(DatagramPacket dp) { return new String(dp.getData(), 0, dp.getLength()); } private void init() { try { dataSocket = new DatagramSocket(CLIENT_PORT); recvByte = new byte[1024]; recvPack = new DatagramPacket(recvByte, recvByte.length); } catch (Exception e) { e.printStackTrace(); } } public void send(String msg) { try { sendPack = getSendPack(msg); dataSocket.send(sendPack); } catch (Exception e) { e.printStackTrace(); } } public String recv() { try { dataSocket.receive(recvPack); return toString(recvPack); } catch (Exception e) { e.printStackTrace(); return null; } } public void runCase(String msg) { send(msg); System.out.println(String.format("msg is \"%s\".", msg)); System.out.println(recv()); } public static void main(String args[]) { UdpClient client = new UdpClient(); JSONObject json = new JSONObject(true); String notExistCard = "0001230000182701"; String existCard = "0001230000182703"; //client.runCase("{"); //client.runCase(""); // dcn not found //json.put("bizSeqNo", "value"); //json.put("consumerSeqNo", "value"); //json.put("cardNo", "value"); //client.runCase(json.toString()); json.put("bizSeqNo", RandomStringUtils.randomNumeric(32)); json.put("consumerSeqNo", "20180812001000199999999999999900"); json.put("cardNo", existCard); client.runCase(json.toString()); } }