现在我用MINA为框架来进行TCPIP数据传送,单独的发数据效果都比较不错,但是当我在服务端向客户端发返回时,我将这个写入动作放在了循环当中,每次返回数据,客户端都不能正常接收到,只有等到这个循环结束后才将所有数据一并返回给客户端,想问一下,怎么样才能在循环中实时的发送数据,客户端那边可以实时的接收的到 for (int j = 0; j < 4; j++) {
for (int k = 0; k < 4; k++) {
sh[0] = (short) (0x80 + j);
sh[1] = (short) (0x00 + (k * 64));
//依次获取1024B字节中每64位的字节数组
sh = curData(bytebaseInfo, (j * 4 + k), 0);
//对每64位依次写入
for (int m = 0; m < bhs.length; m++) {
if (bhs[m] == 0) {
dr.mbs.write(sh, 0);
} else {
modbusResult = dr.mbs.write(sh, bhs[m]);
//每次发送后延时两秒,以确保传感器给工装返回正确标志位
}
}
pro = (((double) (j * 4 + k) / 16) * 100);
drs.session.write("shao," + pro + "\n\r");
}
}
for (int k = 0; k < 4; k++) {
sh[0] = (short) (0x80 + j);
sh[1] = (short) (0x00 + (k * 64));
//依次获取1024B字节中每64位的字节数组
sh = curData(bytebaseInfo, (j * 4 + k), 0);
//对每64位依次写入
for (int m = 0; m < bhs.length; m++) {
if (bhs[m] == 0) {
dr.mbs.write(sh, 0);
} else {
modbusResult = dr.mbs.write(sh, bhs[m]);
//每次发送后延时两秒,以确保传感器给工装返回正确标志位
}
}
pro = (((double) (j * 4 + k) / 16) * 100);
drs.session.write("shao," + pro + "\n\r");
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货