向ESB发送和接收数据
2016-10-26 14:49
417 查看
private static String tcpSendDataToEsb(String host, int port, int timeout,String content) throws Exception {
Socket socket = null;
try {
socket = new Socket();
InetSocketAddress address = new InetSocketAddress(host, port);
socket.connect(address, timeout);
OutputStream outputStream = socket.getOutputStream();
byte contentbs[] = content.getBytes();
outputStream.write(ByteUtil.inttoBytes(contentbs.length));
outputStream.write(contentbs);
outputStream.flush();
IntputStream is = socket.getinputStream();
DataInputStream dis = new DataInputStream(is);
int len = 0;
byte[] tembs = new byte[1024];
ByteArrayOutputStream out = new ByteArrayOutputStream();
while((len = dis.read(tembs)) != -1) {
out.wirte(tembs, 0 , len);
}
out.close();
byte[] lenresult = new byte[4]; // 响应长度
byte[] result = out.toByteArray();// 响应内容
// System.arraycopy(result, 0 , lenresult, 0,4);
outputStream.close();
is.close();
dis.close();
return new String(result, 4, result.length - 4, "GBK");
} catch(ArrayIndexOutOfBoundsException e) {
log.error("调用esb接口发送内容为:" + content + "出现异常:" + e.getStackTrace()[0], e);
} finally {
if(null != socket && !socket.isClosed()) {
try {
socket.close();
} catch(IOException e) {
log.error("发送内容:" + content + "到esb关闭socket连接出现异常:" + e.getStackTrace()[0], e);
}
}
}
}
Socket socket = null;
try {
socket = new Socket();
InetSocketAddress address = new InetSocketAddress(host, port);
socket.connect(address, timeout);
OutputStream outputStream = socket.getOutputStream();
byte contentbs[] = content.getBytes();
outputStream.write(ByteUtil.inttoBytes(contentbs.length));
outputStream.write(contentbs);
outputStream.flush();
IntputStream is = socket.getinputStream();
DataInputStream dis = new DataInputStream(is);
int len = 0;
byte[] tembs = new byte[1024];
ByteArrayOutputStream out = new ByteArrayOutputStream();
while((len = dis.read(tembs)) != -1) {
out.wirte(tembs, 0 , len);
}
out.close();
byte[] lenresult = new byte[4]; // 响应长度
byte[] result = out.toByteArray();// 响应内容
// System.arraycopy(result, 0 , lenresult, 0,4);
outputStream.close();
is.close();
dis.close();
return new String(result, 4, result.length - 4, "GBK");
} catch(ArrayIndexOutOfBoundsException e) {
log.error("调用esb接口发送内容为:" + content + "出现异常:" + e.getStackTrace()[0], e);
} finally {
if(null != socket && !socket.isClosed()) {
try {
socket.close();
} catch(IOException e) {
log.error("发送内容:" + content + "到esb关闭socket连接出现异常:" + e.getStackTrace()[0], e);
}
}
}
}
相关文章推荐
- [C#] 接收和发送UDP数据
- 利用ASP发送和接收XML数据的处理方法
- 异步 SOCKET 编程 - 发送和接收数据
- udp发送接收数据
- 异步SOCKET编程-发送和接收数据[转]
- 异步 SOCKET 编程 - 发送和接收数据
- Asp.net XMLHTTP 基类 (GET,Post发送和接收数据)
- 闪烁led来标志串口的接收与发送数据
- 使用UDPClient发送和接收数据
- 使用UDP协议发送和接收数据
- 使用UDP非连线式发送接收数据(聊天室模式)
- Socket 接收和发送数据的深刻理解.
- Socket网络编程学习笔记(5):发送和接收实体类数据
- c#中UDP数据发送和接收
- 让JRTPLIB 发送/接收数据时使用同一个端口
- [C#] 接收和发送UDP数据
- 利用ASP发送和接收XML数据的处理方法
- 异步SOCKET编程-发送和接收数据[转] 异步SOCKET编程-发送和接收数据[转]
- BlackBerry通过全局变量的发送和接收来更新应用界面数据
- 使用UDP协议发送和接收数据