gpt4 book ai didi

android - 确定套接字何时在 Android 上关闭

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:42:01 25 4
gpt4 key购买 nike

在 Windows 和 iOS 上,我目前正在执行以下操作:

//sock is defined as a valid socket.
fd_set socketsRead;
fd_set socketsWrite;
fd_set socketsExcept;
FD_ZERO(&socketsRead);
FD_ADD(sock, &socketsRead);
FD_ZERO(&socketsWrite);
FD_ADD(sock, &socketsWrite);
FD_ZERO(&socketsExcept);
FD_ADD(sock, &socketsExcept);
timeval timeOut;
timeOut.tv_sec = 0;
timeOut.tv_usec = 100;
bool read, write, except;
if (select(sock + 1, &socketsRead, &socketsWrite, &socketsExcept, &timeOut) == SOCKET_ERROR) {
read = false;
write = false;
except = true;
} else {
read = FD_ISSET(sock, &socketsRead);
write = FD_ISSET(sock, &socketsWrite);
except = FD_ISSET(sock, &socketsExcept);
}

if (read) {
long availableData;
ioctlsocket(sock, FIONREAD, &availableData);
if (availableData == 0) {
//Connection is closed.
}
}

在 Android 上,它似乎不起作用。当我建立连接时,它一直认为连接已关闭。也就是说,读取标志被设置,并且 FIONREAD 在建立连接时立即返回 0

最佳答案

似乎 FIONREAD 定义不正确 - 它使用的是 Windows/iOS 常量值而不是 Android 常量值。

关于android - 确定套接字何时在 Android 上关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18278576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com