Socket发送Bytes信息到接口
2014-11-14 11:00
225 查看
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Random;
publicclass A {
public
static Socket oSocket;
public
static String sendMessage(String message) {
String result = null;
try {
OutputStream outputStream = oSocket.getOutputStream();
outputStream.write(hexStringToBytes(message));
outputStream.flush();
BufferedInputStream in = new BufferedInputStream(
oSocket.getInputStream());
byte[] b =
new byte[1024];
in.read(b);
result = bytesToHexString(b);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public String excuteXdrByMsi(int length)
{
StringBuffer buffer = new StringBuffer("0123456789");
StringBuffer sb = new StringBuffer();
Random r = new Random();
int range = buffer.length();
for (int i = 0; i < length; i ++)
{
sb.append(buffer.charAt(r.nextInt(range)));
}
return sb.toString();
}
/**
* 描述信息
*
* @param args
*/
public
static void main(String[] args) {
try {
A a=new A();
StringBuffer str = new StringBuffer();
str.append("7e5a");
str.append("0014");
str.append("23");
str.append("40");
str.append("00");
str.append("03");
str.append("0000");
str.append("0000");
str.append("00000000");
str.append("00000000");
str.append(a.excuteXdrByMsi(32));
str.append(a.excuteXdrByMsi(8));
oSocket =
new Socket("111.111.111.111", 1111);
sendMessage(String.valueOf(str));
}
catch (UnknownHostException e) {
//
TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
//
TODO Auto-generated catch block
e.printStackTrace();
}
}
public
static byte[] hexStringToBytes(String hexString)
{
if ((hexString ==
null) || (hexString.equals(""))) {
return
null;
}
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d =
new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte)(charToByte(hexChars[pos]) << 4 |
charToByte(hexChars[(pos + 1)]));
}
return d;
}
private
static byte charToByte(char c)
{
return (byte)"0123456789ABCDEF".indexOf(c);
}
public
static final String bytesToHexString(byte[] bArray) {
StringBuffer sb = new StringBuffer(bArray.length);
String sTemp;
for (int i = 0; i < bArray.length; i++) {
sTemp = Integer.toHexString(0xFF & bArray[i]);
if (sTemp.length() < 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
}
return sb.toString();
}
}
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Random;
publicclass A {
public
static Socket oSocket;
public
static String sendMessage(String message) {
String result = null;
try {
OutputStream outputStream = oSocket.getOutputStream();
outputStream.write(hexStringToBytes(message));
outputStream.flush();
BufferedInputStream in = new BufferedInputStream(
oSocket.getInputStream());
byte[] b =
new byte[1024];
in.read(b);
result = bytesToHexString(b);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public String excuteXdrByMsi(int length)
{
StringBuffer buffer = new StringBuffer("0123456789");
StringBuffer sb = new StringBuffer();
Random r = new Random();
int range = buffer.length();
for (int i = 0; i < length; i ++)
{
sb.append(buffer.charAt(r.nextInt(range)));
}
return sb.toString();
}
/**
* 描述信息
*
* @param args
*/
public
static void main(String[] args) {
try {
A a=new A();
StringBuffer str = new StringBuffer();
str.append("7e5a");
str.append("0014");
str.append("23");
str.append("40");
str.append("00");
str.append("03");
str.append("0000");
str.append("0000");
str.append("00000000");
str.append("00000000");
str.append(a.excuteXdrByMsi(32));
str.append(a.excuteXdrByMsi(8));
oSocket =
new Socket("111.111.111.111", 1111);
sendMessage(String.valueOf(str));
}
catch (UnknownHostException e) {
//
TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
//
TODO Auto-generated catch block
e.printStackTrace();
}
}
public
static byte[] hexStringToBytes(String hexString)
{
if ((hexString ==
null) || (hexString.equals(""))) {
return
null;
}
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d =
new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte)(charToByte(hexChars[pos]) << 4 |
charToByte(hexChars[(pos + 1)]));
}
return d;
}
private
static byte charToByte(char c)
{
return (byte)"0123456789ABCDEF".indexOf(c);
}
public
static final String bytesToHexString(byte[] bArray) {
StringBuffer sb = new StringBuffer(bArray.length);
String sTemp;
for (int i = 0; i < bArray.length; i++) {
sTemp = Integer.toHexString(0xFF & bArray[i]);
if (sTemp.length() < 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
}
return sb.toString();
}
}
相关文章推荐
- 飞信的CMD命令行接口批量发送信息
- WSAStartup函数,WSACleanup,Socket接口的检索有关域名、通信服务和协议等Internet信息的数据库函数
- java--socket实现一个客户端像另一个客户端发送信息
- 关于socket通信的理解,socket连接通过IP+端口号的方式,那么如果两个服务器端的应用在同一台机器上,并且位于同一个tomcat容器下,那么岂不是两个服务器都收到了客户端发送的信息
- 为什么ServerSocket接收不到客户端Socket发送的信息?
- 微信消息接口发送信息到分组和用户,错误代码40003和40008
- IOS网络篇7之基于第三方CocoaAsyncSocket实现Socket通信(发送图片以及类似http头信息)
- socket客户端发送信息举例
- C# socket 简单实现server呈现client发送信息
- 一个socket发送调试信息的类
- socket 发送 BYTES 数组
- php socket 如何向https协议的接口发送数据
- Socket发送信息给远程服务器,Toast显示(线程内外都可以)
- Socket发送信息
- socket发送和接受tcp信息包格式的定义
- 套接口Socket数据发送过程详解
- socket接收发送信息
- 内核能够动态确定ip包的发送接口,通过路由信息确定
- Socket发送普通消息到接口