循环发送多组发送命令后,发现有时候接收到的不是的刚刚发送出的命令的回复,是上一次或者更早的命令。
后查明是读取缓冲在作祟,JAVA可否清空读取缓冲? 我找了很多地方都没有明确的答复也有很多人问。 是我问题的关键词有问题吗? 还是JAVA就不支持缓冲区的控制?我现在选择了另一个思路利用快速超时来清空缓冲
try {
socket.setSoTimeout(1);
sock.recv();
}catch(SocketTimeoutException e){}
虽然问题是能解决,但还是希望能求证整个问题。JAVA缓冲区的控制真的没法这么做么?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货