epoll

    1熱度

    3回答

    我想使用epoll編寫基於事件的服務器。 每個客戶端都有不同的請求,服務器應該對它們做出響應。 服務器將等待連接,當連接可用時,它們排隊等待讀取。 數據從客戶端讀取,他們將排隊等待寫入。處理完數據後,應向每個人發送適當的響應。 所有的操作將是異步的。 問題是,我怎麼能確定哪個套接字準備寫入哪個套接字?我可以存儲一個(套接字,數據)元組,但是這是一種糟糕的編程。 我想知道是否可以爲每個套接字或每個e

    1熱度

    1回答

    當我嘗試使用epoll打開最大數量的併發套接字連接時,它在1024上進行了掃描。之後,它給出了「打開的文件過多」錯誤。我知道這不是限制。我嘗試在/etc/security/limits.conf中更改nofile參數值,但我只有只讀權限。是否有任何方法可以同時打開多個文件描述符?

    5熱度

    1回答

    請考慮以下情況:您正在部署可提供1個請求/秒的應用程序。如果我在1秒內發送10個請求會發生什麼?我寫了一個簡單的應用程序來測試:https://github.com/amezhenin/nginx_slow_upstream。 此測試顯示您的請求將被髮送_in_exact_same_order_。 現在,這看起來像Nginx有一些請求隊列,但我的同事(管理員)說,在Nginx中沒有任何隊列。所以我

    1熱度

    1回答

    我正在使用多線程嵌入式應用程序,其中epoll在其中一個線程中用於IO。我依賴epoll的一個特殊功能,它指定關閉一個文件描述符會自動將它從epoll集中移除(man 7 epoll中的Question/Answer 6)。在這種情況下,文件描述符關閉在調用epoll_wait的同一個線程中完成。結果發生的是epoll_wait在關閉文件描述符後返回一個事件,並且程序最終崩潰,因爲它試圖訪問當文件

    1熱度

    1回答

    我尋求幫助,瞭解以下情況的名單之前: 1.我有一個TCP套接字連接建立對等體。 2.我加入文件描述符的清單,供選擇 3.選擇提醒我被監測到插座上的任何活動,我的應用程序處理通過插座上的節點發送數據。 4.現在,我通過select從要監視的文件描述符列表中刪除與套接字關聯的文件描述符。 5. Peer在該套接字上發送一些數據。我不讀這些數據。 6.幾秒鐘後,我再次與插座文件描述符的列表相關的文件描述

    1熱度

    1回答

    是否有eventfd_write的詳細文檔? man eventfd_write調出eventfd的聯機幫助頁。在那個manpage上,它提到了glibc提供的eventfd_write()。 Google只爲整個gnu的網站編制了6頁,用於eventfd_write。它們中沒有一個與文檔有關。 任何想法,我可以找到它? P.S.另一個側面問題(但相關的問題):是否有郵件列表來詢問有關glibc的

    0熱度

    1回答

    我試圖在linux中製作rtsp服務器,我認爲服務器自動選擇單個或多個線程。如你所知,RTSP在服務器和客戶端之間有很多數據包。 (視頻,音樂像實時數據) 所以,我認爲epolling不是好的選擇。因爲在這種情況下每次都發生事件。 此外,我聽說每個線程一個套接字並不好。由於相同的原因,這也不是好的選擇。 我看到了有關這方面的示例代碼,沒有人在一個線程中使用epolling或multi socket

    3熱度

    2回答

    我會寫一個小測試,通過捕獲任何中斷的信號來顯示epoll_Wait和epoll_pwait()之間的差異。任何人都可以通過一個小代碼或任何方法提供給我,以找到它? int epoll_pwait(int epfd, struct epoll_event *events, int maxevents, int timeout, const sigset_t *si

    0熱度

    4回答

    我知道,如果遠程主機正常關閉連接,epoll將報告EPOLLIN,並呼籲read或recv不會阻止,並會返回0字節(即結束流)。 然而,如果連接沒有正常關閉,和一個或writesend操作失敗,這是否導致epoll隨後返回EPOLLIN該插座,產生流場景的相同/相似端? 我試圖找到關於這種行爲的文檔,但都沒有成功,而我可以測試它,我不感興趣,在與特定的內核版本特定的分佈會發生什麼。

    0熱度

    1回答

    你好,我想使用epoll的一個原始的以太網服務器/客戶端應用程序 我需要監控至少兩個文件描述符 一個用於連接(原始套接字) 另一個用於標準輸入,因爲我必須從鍵盤獲取一些數據(fileno(stdin)) 我已經在線閱讀,必須創建一個for循環,以便將文件描述符添加到epoll實例,但我可以得到它工作可以有人幫助我以如何實施這個例子 謝謝