package ndsl;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class DBCAgent {
private Socket socket = null;
private byte[] buffer;
public DBCAgent() {
try {
this.socket = new Socket("192.168.9.64", 8886);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void recvData() throws IOException {
byte[] recvHead = new byte[4];
int cForm;
int cmd, length, para1, para2, para3;
// read cmd
socket.getInputStream().read(recvHead, 0, 4);
cForm = Common.bytes2Integer(recvHead);
cmd = Common.bytes2Integer(Common.toLH(cForm));
// read length
socket.getInputStream().read(recvHead, 0, 4);
cForm = Common.bytes2Integer(recvHead);
length = Common.bytes2Integer(Common.toLH(cForm));
// read para1
socket.getInputStream().read(recvHead, 0, 4);
cForm = Common.bytes2Integer(recvHead);
para1 = Common.bytes2Integer(Common.toLH(cForm));
// read para2
socket.getInputStream().read(recvHead, 0, 4);
cForm = Common.bytes2Integer(recvHead);
para2 = Common.bytes2Integer(Common.toLH(cForm));
// read para3
socket.getInputStream().read(recvHead, 0, 4);
cForm = Common.bytes2Integer(recvHead);
para3 = Common.bytes2Integer(Common.toLH(cForm));
byte[] recvData = new byte[length];
// read data
socket.getInputStream().read(recvData, 0, length);
String DataStr = new String(recvData);
System.out.println(DataStr);
}
public boolean sendData(String data) {
byte[] temp = null;
MsgHeader header = new MsgHeader();
header.setLength(data.length());
this.buffer = new byte[data.length() + 20];
// add cmd
temp = Common.toLH(Protocol.PORTAL_DBC_INSTALLSYSTEM);
System.arraycopy(temp, 0, buffer, 0, 4);
// add lenght
temp = Common.toLH(header.getLength());
System.arraycopy(temp, 0, buffer, 4, 4);
// add para1
temp = Common.toLH(header.getPara1());
System.arraycopy(temp, 0, buffer, 8, 4);
// add para2
temp = Common.toLH(header.getPara2());
System.arraycopy(temp, 0, buffer, 12, 4);
// add para3
temp = Common.toLH(header.getPara3());
System.arraycopy(temp, 0, buffer, 16, 4);
System.arraycopy(data.getBytes(), 0, buffer, 20, data.length());
try {
socket.getOutputStream().write(this.buffer);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
}
java跟c++数据交互 socket java接收、发送结构体
5星 · 超过95%的资源 需积分: 45 123 浏览量
2013-07-26
09:40:38
上传
评论 2
收藏 7KB RAR 举报
asd876484135
- 粉丝: 7
- 资源: 33
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
前往页