epoll

    7熱度

    3回答

    在LDD3,我看到這樣的代碼 static unsigned int scull_p_poll(struct file *filp, poll_table *wait) { struct scull_pipe *dev = filp->private_data; unsigned int mask = 0; /* * The buffer is circ

    0熱度

    2回答

    假設我有一個綁定到套接字的進程,而不是自己創建4個當前進程的實例。 新進程繼承父套接字的文件描述符,並能夠對其執行「接受」。如果我將套接字描述符放入epoll並嘗試連接到套接字,則會通知所有4名工作人員(EPOLLIN)有一些要讀取/接受的數據。所有工作人員都試圖做出接受,其中3人失敗了,只有一個人可以接受。 我該如何解決這個問題? 這是太大的性能損失,讓大部分工作人員每次都在失敗連接時失敗。 這

    0熱度

    1回答

    在我的客戶端應用程序中,我使用epoll和udp套接字從服務器接收數據包。客戶端應用程序有兩個進程,p1和p2。 使用此函數獲取fd的sock = socket(AF_INET,SOCK_DGRAM,0); 在方法P1中,插座()函數返回FD的從4 P1開始已經的fd的4,5,6,7,8等 在過程P2,插座()函數返回FD的從4開始。 P2有fd的4,5,6 現在在這兩個進程中有相同的FD但端口號

    0熱度

    1回答

    我有一個Tcp/IP與ssl服務器啓用epoll,因此它可以同時處理一萬個連接。當我試圖測試服務器時,我使用線程創建了千個客戶端。當我試圖連接服務器時,在一定的時間connect()返回ETIMEOUT。如何克服這個錯誤?

    0熱度

    1回答

    我一直在尋找this question的答案,我在Linux中遇到了函數timerfd_create和epoll。在教程中有人說,epoll_ctl()有一個epoll_data_t聯合成員的epoll_event結構,它可以用來執行callback函數的事件觸發。但我不確定如何去做。任何人都可以請幫忙。

    2熱度

    1回答

    我讀Redis的烴源代碼和ae_epoll.c我發現下面的代碼: static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) { aeApiState *state = eventLoop->apidata; int retval, numevents = 0; retval = epoll_w

    1熱度

    2回答

    我正在實施P2p文件共享的bit torrent。比方說,100個同時共享的最大數量。 TCP連接在每個對等端與其他對等端之間建立。最初,一個同伴擁有整個文件,並開始共享文件,隨後,所有同行共享文件。 通常情況下,件尺寸是50kB - 1MB。我想知道,在C編寫這樣的應用程序的最佳方法是什麼?使用epoll或libevent的線程? 任何人都可以給出不同的可能方法的積極/消極嗎?

    1熱度

    1回答

    我試圖讓libusb與epoll而不是poll一起工作,因爲我已經在需要可擴展性的應用程序中使用epoll,並且只能在Linux上運行。我想知道libusb_get_pollfds這個打算輪詢的events標誌是否與epoll兼容。 例如,可以將POLLIN標誌註冊爲epoll,並獲得與EPOLLIN標誌相同的行爲,還是需要將這些事件標誌映射到它們對應的epoll版本?

    1熱度

    1回答

    我已經使用epoll實現了自己的事件處理機制,因此我已經有一個線程正在運行。我只想在我的事件循環中註冊Aerospike FD。是否有可能這樣做?或者它會產生一個新的線程?

    3熱度

    1回答

    NGNIX使用epoll通知來了解套接字上是否有數據要讀取。我們假設: 有兩個請求到服務器。 nginx的是notificated瞭解這個兩個請求,並且開始: 接收第一請求 解析IST頭 檢查boudary(車身尺寸) 發送向上遊服務器的第一請求 等 nginx是單線程的,只能同時執行一個操作。 但第二個請求會發生什麼? nginx在解析第一個請求時是否收到第二個請求? 或者在第一次完成後開始處理