它只发生在Androids,而不是PC,而我的服务器是使用C ++制作的
让我们说我发送了一个包含3个int和1个char的数据包的函数
void SendTestPacket(int num1, int num2, int num3) {
System.out.println("Function called");
if(true) {
clientOut.writeInt(1); // clientOut is a DataOutputStream
clientOut.writeInt(2);
clientOut.writeInt(3);
clientOut.writeChar('\n');
System.out.println("Data sent");
}
System.out.println("Function fully executed");
}
我尝试使用我的Android客户端在每个手指平移功能上发送一个数据包,当在屏幕上拖动手指时,该功能在5秒内被调用超过1000~2000次。
不知何故,在拖动我的手指的过程中,该函数停止正常执行,特别是从第一个clientOut.writeInt(int)开始;直到if部分结束。它就像是“打破”或“继续”#39;声明被称为。
在早期,我总是得到这样的输出
Function called
Data sent
Function fully executed
过了一会儿,它变成了每个循环的这种输出
Function called
Function fully executed
如果我在PC java客户端上测试它,无论我怎么做都不会发生 对不起,我忘了提及它,它在Wirelesss Lan连接上。
实际功能代码
void SendTestPacket(int packettype, int num1, int num2) {
System.out.println("Function called");
try {
clientOut.writeInt(packettype); // clientOut is a DataOutputStream
clientOut.writeInt(num1);
clientOut.writeInt(num2);
clientOut.writeChar('\n');
System.out.println("Data sent");
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Function fully executed");
}