发送封装

master
rengp 2 years ago
parent 9126d079db
commit f0a3443fc6

@ -0,0 +1,68 @@
package com.engine.util;
import weaver.general.BaseBean;
import weaver.general.StringUtil;
import java.io.*;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
//发送SocketUtil
public class SocketClientUtil {
private int port = 8090;
private String host = "127.0.0.1";
private BaseBean bs = new BaseBean();
public SocketClientUtil(String host ,int port) {
this.port = port;
this.host = host;
}
public String send(String request) {
// bs.writeLog("Client Start...");
Socket socket = null;
try {
//创建一个流套接字并将其连接到指定主机上的指定端口号
socket = new Socket(host,port);
// String str = "00000612<?xml version=\"1.0\" encoding=\"UTF-8\"?><Service><Service_Header><service_sn>1010157060000081243</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20230905104426</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720230905060000081243</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount</method><args><entry><key>userNum</key><value>10913026任广鹏是个大刷币</value></entry></args></request></Service_Body></Service>";
// System.out.println(str);
//读取服务器端数据
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
//向服务器端发送数据
// PrintStream out = new PrintStream(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8));
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8),true);
out.println(request);
String ret = input.readLine();
System.out.println("服务器端返回过来的是: " + ret);
// bs.writeLog("服务器端返回过来的是: " + ret);
// 如接收到 "OK" 则断开连接
if (!StringUtil.isEmpty(ret)) {
// bs.writeLog("客户端将关闭连接");
System.out.println("客户端将关闭连接: " + ret);
Thread.sleep(500);
}
out.close();
input.close();
return ret;
} catch (Exception e) {
// bs.writeLog("客户端异常:" + e.getMessage());
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
socket = null;
// bs.writeLog("客户端 finally 异常:" + e.getMessage());
}
}
}
return "-1";
}
public static void main(String[] args) {
String str = "00000604<?xml version=\"1.0\" encoding=\"gbk\"?><Service><Service_Header><service_sn>1010157060000081243</service_sn><system_id>0258</system_id><requester_id>0157</requester_id><branch_id>010231100</branch_id><channel_id>01</channel_id><service_time>20230905104426</service_time><need_request>true</need_request><SvcCd>500130004</SvcCd><SvcScn>13</SvcScn><BnkSrlNo>015720230905060000081243</BnkSrlNo><FileFlg>0</FileFlg></Service_Header><Service_Body><request><path>todo</path><method>getCount</method><args><entry><key>userNum</key><value>10913026任广鹏是个大刷币</value></entry></args></request></Service_Body></Service>";
new SocketClientUtil("127.0.0.1",8090).send(str);
}
}

@ -87,7 +87,6 @@ class SocketThread extends Thread {
}
}
class ProcessSocketData extends Thread {
private Socket socket;
@ -112,8 +111,6 @@ class ProcessSocketData extends Thread {
PrintWriter pw = new PrintWriter(outputStreamWriter);
InputStream inputStream = socket.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
// StringBuilder requestData = new StringBuilder();
String inputLine;
char[] datalen=new char[8];//报文前八位为报文体总长度
in.read(datalen,0,8);
String lendata=new String (datalen);
@ -122,21 +119,6 @@ class ProcessSocketData extends Thread {
char[] data=new char[length];
int datalength = in.read(data,0,length);
String requestData = new String(data);
// inputLine = in.readLine();
// requestData.append(inputLine);
// System.out.println("Received from client: " + inputLine);
// byte[] datalen=new byte[8];//报文前八位为报文体总长度
// inputStream.read(datalen);
// String lendata=new String (datalen);
// int length=Integer.parseInt(lendata);
// // byte[] data=new byte[length];
// byte[] data=new byte[length];
// int datalength = inputStream.read(data);
// String requestData = new String(data, 0, datalength);
String s = "";
if (!StringUtil.isEmpty(requestData.toString())) {
new BaseBean().writeLog("requestData",requestData);
@ -153,8 +135,6 @@ class ProcessSocketData extends Thread {
System.out.println(e);
}
}
private String execute(String XMLparam){
Map<String, String> paramMap = XMLUtils.parseXMLToMap(XMLparam);

Loading…
Cancel
Save