java - EAGAIN EWOULDBLOCK 安卓

标签 java android sockets bluetooth

我开发了一个 Android 应用程序,它有多个设备通过蓝牙套接字连接将数据发送回服务器设备,但是我遇到了错误:

E/bt-btif: send none, EAGAIN or EWOULDBLOCK, errno:11

我读到这些错误发生在接收设备的套接字缓冲区已满的套接字连接上,但是我不确定如何在 Android 应用程序中处理它。有没有一种方法可以在尝试之前检查这些错误传输,或者如果它们发生捕获它们并稍后重试传输?

最佳答案

如果您得到 EAGAIN,只需再次重试相同的操作即可。

如果您得到 EWOULDBLOCK,则您必须使用非阻塞套接字,并且请求的操作会导致套接字阻塞调用线程。使用 select() 等待阻塞条件清除,然后重试原来的操作。

关于java - EAGAIN EWOULDBLOCK 安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19127939/

相关文章:

java - react-native-admob 中的错误,有人可以帮助我吗?

android - Ext未定义错误

带有带外数据的 Java 套接字

java - HQL 使用两列中的最大值对记录进行排序

java - 如果字符串包含单引号或双引号,则调用 CMIS 查询时出错

android - 导入的Eclipse项目-具有不同AndroidManifests的Gradle buildTypes

Android CursorLoader 带有选择和selectionArgs[]

php - PHP:如何从套接字读取N个字节?

python - getaddrinfo失败,出现socket.gaierror [11001](python)(mqtt)

java - 在Java源代码中, "Offloaded for"是什么意思?