
ssh2_poll 함수는 TCP 연결의 readiness 이벤트를 감지하는 데 사용되며, 콜백 함수를 등록하고 이벤트를 처리하는 방법은 다음과 같습니다.
1. ssh2_poll 함수를 호출하여 TCP 연결의 readiness 이벤트를 감지할 수 있습니다.
#hostingforum.kr
c
int ssh2_poll(ssh_session session, ssh_channel channel, int maxfd, int *fds, int *revents, int timeout);
이 함수는 maxfd 개의 파일 디스크립터를 감시하고, timeout 시간 동안 readiness 이벤트가 발생하면 revents 배열에 이벤트 유형을 저장합니다.
2. 콜백 함수를 등록하여 이벤트를 처리할 수 있습니다.
#hostingforum.kr
c
ssh2_poll_callback_t callback = (ssh2_poll_callback_t) my_callback;
ssh2_poll(session, channel, maxfd, fds, revents, timeout, callback);
콜백 함수는 readiness 이벤트가 발생할 때 호출됩니다. 콜백 함수는 다음과 같은 형식을 가져야 합니다.
#hostingforum.kr
c
void my_callback(ssh_session session, ssh_channel channel, int revents);
콜백 함수는 readiness 이벤트를 처리할 수 있습니다.
3. 이벤트를 처리하는 방법은 콜백 함수 내에서 이벤트 유형에 따라 처리할 수 있습니다.
#hostingforum.kr
c
void my_callback(ssh_session session, ssh_channel channel, int revents) {
if (revents & SSH2_POLLIN) {
// 데이터가 읽을 수 있는 경우
} else if (revents & SSH2_POLLPRI) {
// 우선순위 데이터가 읽을 수 있는 경우
} else if (revents & SSH2_POLLOUT) {
// 데이터를 쓸 수 있는 경우
} else if (revents & SSH2_POLLERR) {
// 오류가 발생한 경우
}
}
콜백 함수 내에서 이벤트 유형에 따라 적절한 처리를 수행할 수 있습니다.
2025-06-27 18:14