epoll

    2熱度

    3回答

    我是使用epoll進行linux服務器編程的新手。 我有2個線程:Thread_Accept和Thread_epoll。前者是塊接受循環,如果新連接即將到來,它將使用epoll_ctl()添加新的fd。後者是一個大的epoll_wait()循環。 現在我的問題是:如果當Thread_Acepts執行epoll_ctl()而Thread_epoll處於epoll_wait中間時呢?會有副作用嗎? 在

    1熱度

    1回答

    我一直在使用epoll的linux服務器,幾乎完成它。 我意識到客戶端將使用UDP :( 能否請您使用epoll的UDP提供我任何好的教程或實例發送數據包? 在此先感謝。

    0熱度

    2回答

    成功時,epoll_wait(2)返回 準備 請求的文件描述符的I/O數,或零,如果沒有 文件描述符期間 成爲準備請求超時毫秒。 發生錯誤時,epoll_wait(2) 返回-1,errno設置爲 。 假設epoll是ET觸發的,將epoll_wait通知進程N次連接的N個socket還是隻有一次?

    1熱度

    1回答

    與監聽套接字打交道是從man epoll頁: 功能do_use_fd()使用新的 準備文件描述符 直到EAGAIN由要麼讀返回(2)或write(2) 。爲ET 代碼示例觸發: for(;;) { nfds = epoll_wait(kdpfd, events, maxevents, -1); for(n = 0; n < nfds; ++n) { if(e

    1熱度

    1回答

    我正在使用epoll進行網絡編程。我想知道服務器沒有收到所有發送的數據客戶端的情況。例如,如果一個客戶端發送了100個字節,並且某個服務器只收到了94個字節。我如何處理這種情況? 在此先感謝..

    3熱度

    2回答

    我正在使用epoll進行網絡編程。我有一個連接列表並將每個客戶端放入列表中。如果用戶正常斷開連接,則可以通過讀取0來檢測用戶斷開連接。但是,如果用戶以某種方式意外斷開連接,則在嘗試將數據發送給用戶之前,無法知道這一點。 我不認爲epoll提供了一個很好的方式來處理這個..所以我認爲我應該自己處理這個問題。如果你們能向我提供任何有關此問題的例子或參考資料,我將非常感激。

    0熱度

    1回答

    我在python中編寫了一個epoll包裝器,它工作正常,但是最近我發現性能對於大包發送來說並不理想。我期待下入代碼,發現居然有錯誤 Traceback (most recent call last): File "/Users/dawn/Documents/workspace/work/dev/server/sandbox/single_point/tcp_epoll.py", lin

    0熱度

    1回答

    while(m_severRun){ printf("ServerManager::eventAcceptLoop, epoll_wait\n"); int event_cnt = epoll_wait(m_epfd, m_events, EPOLL_SIZE, -1); if(event_cnt == -1){ perror("epoll_wait e

    1熱度

    4回答

    假設客戶端發送了100個字節的數據,但不知何故服務器只收到了90個字節。我如何處理這種情況?如果服務器在while循環內部調用「read」函數來檢查接收到的總數據,那麼服務器將永遠等待包的最後10個字節。 此外,可能發生客戶端在數據傳輸中斷。在這種情況下,服務器也將永遠等待,直到它收到所有不會到達的數據。 我正在使用tcp,但在現實世界的網絡環境中,可能會發生這種情況。在此先感謝...

    3熱度

    3回答

    我正在使用epoll進行網絡編程。這似乎工作正常。我想添加一個超時函數,所以如果客戶端長時間沒有發送任何東西,那麼它只會斷開客戶端。 我該怎麼做?我知道我可以設置在epoll_wait超時,但是,這不是個別插座...提前 謝謝...