我写了一个android
应用程序,它连接到ServerSocket
(写入的Java
)并应该并行传输一些数据。我有 3 个套接字 - 一个用于文本传输,两个用于数据传输(声音、图像等)。在最初的几个小时内一切正常,但之后该write()
方法卡住并且不传输任何数据,大约 15 分钟后我得到sendto failed: ETIMEDOUT (Connection timed out)
例外。奇怪的是,文本确实会随时传输..
我正在使用DataOutputStream
传输文本和BufferedOutputStrem
传输数据..基本代码很简单:
while((max=fis.read(b))!=-1){
dataOut.write(b, 0, max);
dataOut.flush();
}
fis.close();
在服务器中:
while(counter<size){
max = dataStream.read(b);
fos.write(b, 0, max);
counter = counter + max;
}
fos.close();
编辑:好的,我终于找到了问题..看起来那个长时间不发送一些数据的套接字将无法正常工作。所以我必须每 X 分钟发送一个字节..