socket输出流android的奇怪行为

时间:2013-06-20 11:26:21

标签: java android

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

0 个答案:

没有答案