我有一个程序可以将数据发送到带有 android 的手机。让我们开始吧
//编辑
while(enviado < length) {
printf("SEND\n");
r = write(con, buff_enviar+enviado, length-enviado);
printf(" OK\n");
if (r > 0) enviado += r;
else if (r == 0) { printf(" * >> Socket cerrado [datos] (%d)\n",r); return r; }
else if (r == -1) { printf(" * >> Error [datos] (%d)\n",r); return r; }
}
当我离开这段时间时,我会改变buff_enviar
价值观。当我通过成功的 socket.close() 取消手机中的传输时,这write
会使我的程序无缘无故地结束。所以我的程序的输出是:
SEND
OK
SEND
OK
SEND
我想这是write
错的,因为它没有 printf OK。ERRNO 值为 61(无可用数据)
我希望有人以前遇到过这个问题并解决了它。
编辑:有时当我取消时,r = -1 所以我可以处理错误,但大多数时候它只是终止程序。就像随机选择的一样。我很困惑 :(
亲切的问候,劳尔