我写了一个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分钟发送一个字节..