📄 bussinessouthelp.java
字号:
package com.AUG21.ProtocolEncapsulation;
import java.io.*;
import java.net.UnknownHostException;
import java.nio.*;
public class BussinessOuthelp {//包文构建方法
private ByteBuffer bb = null;
private int length = 0;
private int pos = 0;
public BussinessOuthelp(int allocatesize) throws UnknownHostException {//在构造方法中构造包文大小
bb = ByteBuffer.allocate(allocatesize);//定义字节缓冲区大小
bb.order(ByteOrder.LITTLE_ENDIAN);//获取此缓冲区的字节顺序
bb.position();//返回此缓冲区的位置。
initHead();//自定义包头结构
}
private void initHead() throws UnknownHostException {
bb.put(Config.getIP().getBytes());
bb.putInt(Config.port);
pos = bb.position();
bb.putInt(length);
bb.putLong(Config.getSerialNo());
}
public void writeInt(int i){
bb.putInt(i);
}
public void writeString(String input, int length) throws IOException {
int i = 0;
int setPos = 0;
byte buf[] = null;
try {
buf = input.getBytes("GBK");
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
int strLen = buf.length;
while (i < length) {
byte ch = (setPos < strLen ? buf[setPos++] : 0);
bb.put(ch);
i++;
}
}
public byte[] getBytes() throws IOException {
if (bb.hasArray()) {
length = bb.position();
bb.position(pos);
bb.putInt(length);
bb.position(length);
return bb.array();
} else {
return null;
}
}
public String getString(int length) throws IOException {
byte[] buffer = new byte[length];
for (int i = 0; i < length; i++) {
buffer[i] = bb.get();
}
return new String(buffer, "GBK").trim();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -