epoll

    1

    2답변

    C로 epoll 기반 네트워크 서버를 작성하고 있습니다. 들어오는 연결을 수신 대기 소켓을 만들면 fcntl을 사용하여 비 차단으로 만듭니다. 마찬가지로 들어오는 연결이 클라이언트에서 도착할 때, 나는 그들과 함께 아무것도하기 전에 그들의 블럭을 비 블로킹 (non-blocking)으로 만들고, 아웃 고잉 연결의 소켓을 위해 마찬가지로 만든다. 때로는 서버

    0

    1답변

    nfds = epoll_wait(epollfd, events, MAX_EVENTS, -1); if (nfds == -1) { perror("epoll_pwait"); exit(EXIT_FAILURE); } /*why it traverses the event array from 0 to nfds*/ for (n = 0; n < nf

    0

    1답변

    epoll에서 작동하는 두 개의 스레드가 있습니다. 하나의 스레드가 서버에 대한 TCP 연결을 시도하고 EPOLL_CTL_ADD 옵션을 사용하여 소켓을 epoll-fd에 추가합니다. 또 다른 스레드는 epoll-fd에 추가 된 SD에서 이벤트 대기를 담당합니다. 스레드 1 : establish_tcp_conn() { struct epoll_eve

    0

    1답변

    우리가 알 수있는 바와 같이, 우리는 NETMAP으로 poll/select를 사용할 수 있습니다 http://info.iet.unipi.it/~luigi/netmap/ 이 epoll를 사용하는 것이 가능하고 NETMAP으로는 epoll을 사용하는 것이 의미가 있는지, 또는 속도에 아무런 장점이 없다?

    1

    2답변

    나는 이것에 대해 많은 질문이 있지만 아직 나를 도울 수있는 답을 찾을 수 없다는 것을 알고있다. epoll과 함께 작은 tcp 서버를 가지고 가능한 한 많은 CPU 코어를 활용하기를 바랍니다. 나는 그것이 할 수있는 약 2 가지 방법에 대해 생각해 보았지만, 그들 중 누구도 정말로 잘하지 못했습니다. 1 - 각 스레드는 자체 epoll fd를 가지고 있고

    0

    1답변

    내 경우에는 epoll_wait 루프 (두 스레드)에서 동일한 fd (소켓)가 사용되고, 하나의 루프는 읽기 (pollin)에만 사용되며, 다른 루프는 쓰기 (pollout)에만 사용되며 pollout은 쓸 데이터가있다. 보통, 소켓이 피어에 의해 닫힐 때 pollin이 먼저 수신합니다. pollout 또는 pollerr 이벤트를 트리거하도록 쓰기 루프를

    0

    1답변

    epoll을 사용하여 서버를 개발했습니다. 그것은 리눅스에서 잘 작동합니다. 하지만 kqueue를 사용하여 macosx 지원을하고 싶습니다. libevent는 이러한 이벤트 기반 라이브러리 (epoll, kqueue) 위에 추상화 계층이라고 들었습니다. epoll을 사용하여 libevent에이 코드를 어떻게 포팅 할 수 있습니까? 예제 코드 : https:

    1

    1답변

    나는 이벤트를 지정하면 EPOLLET이 epoll을 레벨 트리거에서 에지 트리거로 전환한다는 것을 알고 있습니다. 기본적으로 epoll_wait()을 호출하는 것이 레벨 트리거됨을 의미합니까?

    2

    1답변

    linux 용 timerfd (timerfd_create)를 사용하면 Timer_Heap 또는 Timer_Wheel보다 성능이 향상되는지 궁금합니다. 분명히 이것은 매우 높은 수준의 질문이며 모든 프레임 워크에서 사용되는 것을 본 유일한 곳은 "muduo"입니다. 또한 성능 비교도 없습니다. 감사합니다.

    0

    1답변

    일반적인 프로그래밍 상황/버그로 인해 서버 프로세스가 발생할 수 있습니다. CLOSE_WAIT에 입력했지만 실제로 소켓을 닫지는 않습니다. 내가하고 싶은 것은이 상황을 해결하여 해결할 수 있도록하는 것입니다. 정상적인 개발 환경에서는 트리거 할 수 없었지만 실제 서버에서 사용되는 동일한 코드는 종종 여러 날이 지난 후에 수백 개가 넘는 경우가 종종 있습니다