- 论坛徽章:
- 0
|
在libssh2中给出的示例中有这样一段代码
waitsocket(int socket_fd, LIBSSH2_SESSION* session)
{
struct timeval timeout;
int rc;
fd_set fd;
fd_set *writefd = NULL;
fd_set *readfd = NULL;
int dir;
timeout.tv_sec = 10;
timeout.tv_usec = 0;
FD_ZERO(&fd);
FD_SET(socket_fd, &fd);
dir = libssh2_session_block_directions(session);
if(dir & LIBSSH2_SESSION_BLOCK_INBOUND)
readfd = &fd;
if(dir & LIBSSH2_SESSION_BLOCK_OUTBOUND)
writefd = &fd;
rc = select(socket_fd + 1, readfd, writefd, NULL, &timeout);
return rc;
}
想请问各位高手如果为什么要使用libssh2_session_block_directions这个函数确定阻塞的方向,如果不使用而直接改为select(socket_fd + 1, &fd, &fd, NULL, &timeout);会出现有什么不好的地方么? |
|