cost 110 ms
Queueuserworkitem 與 TrySubmitThreadpoolCallback

[英]Queueuserworkitem vs TrySubmitThreadpoolCallback

主要問題: QueueUserWorkItem 和 TrySubmitThreadpoolCallback 之間有什么區別,因為它們都將工作項排隊到線程池嘗試提交線程池回調這個 function 向線程池的隊列中添加一個工作項(通過調用 PostQueuedCompletionStatus),如 ...

為什么我們需要 `CreateThreadpoolIo` 和 `StartThreadpoolIo` 用於 IOCP?

[英]Why we need `CreateThreadpoolIo` and `StartThreadpoolIo` for IOCP?

我正在嘗試使用依賴 Windows API CreateThreadpoolIo和StartThreadpoolIo的 IOCP,但我發現線程池只是為了使 ZCF3882F1C43AB22BFF0BD9D82D83251 后面的代碼並行完成。 異步 IO 提交操作也在主線程中順序執行。 那么為什么 ...

2022-09-09 02:14:44   2   39    winapi / iocp  
當服務器只有 1 個 UDP 套接字時,如何處理許多傳入的 UDP 數據包?

[英]How to deal with many incoming UDP packets when the server has only 1 UDP socket?

當服務器只有 1 個 UDP 套接字,並且許多客戶端正在向它發送 UDP 數據包時,處理所有傳入數據包的最佳方法是什么? 我認為這也可能是 TCP 數據包的問題,因為線程數有限,無法覆蓋所有客戶端 TCP 套接字接收事件。 但是在這種情況下情況會更好,因為每個客戶端有 1 個 TCP 套接字,即使 ...

I/O 完成端口 C++ 和線程池

[英]I/O Completion ports C++ And Threadpools

我試圖了解哪個是真的,我在多個來源中讀到 IOCP 可用於實現線程池,我在其線程中使用多個 IOCP 來進行進程間通信,我正在嘗試重新實現我的代碼以使用只有一個 IOCP 和一個線程池來管理我的所有進程。 我可以只使用一個線程並讓 IOCP 自己的內部線程池管理異步 I/O,還是必須使用線程池 ob ...

我不知道為什么我的 IOCP 的 numberOfConcurrentThreads 參數不起作用

[英]I don't know why my IOCP's numberOfConcurrentThreads argument doesn't work

我已經閱讀了下面的材料並測試了一些代碼。 IOCP 是否創建自己的線程? 我的代碼如下: 我想,如果 numberOfConcurrentThreads 有效,那么只有一個 cout '1' 應該運行的線程,而不是所有五個線程。 但是,結果如下。 所有重疊的工作都由工作線程處理.. 為什么所有重 ...

GetQueuedCompletionStatus - 如何在沒有任何套接字結構的情況下讀取客戶端消息

[英]GetQueuedCompletionStatus - How to read clients messages without any socket struct

我正在嘗試使用 Windows 中的 C 來學習 IOCP。 這個想法是有一個非阻塞服務器,帶有處理客戶端消息的線程。 我現在了解如何接受客戶等。 但我仍然不明白如何從GetQueuedCompletionStatus()讀取每個客戶端的消息並打印它們。 我在網上看到所有人都使用LPOVERLAPP ...

IO 完成端口和 WSASend

[英]IO Completion Ports and WSASend

提前抱歉,但請解釋一下,如何將 IOCP 與 WSASend 一起使用 - 例如,向服務器發送一條簡單的消息並從其接收響應。 我正在這樣做: 創建完成端口為完成端口創建線程我創建了一個帶有 Overlaped 標志的 WSASocket。 我使用 WSAConnect 與遠程服務器建立連接我將套接 ...

如何使用 IOCP 異步讀取文件?

[英]How to make asynchronous read of a file with IOCP?

我遇到了一個實施問題。 我對如何實現 IOCP 感到困惑。 我在互聯網上閱讀了很多關於它的內容,但仍然缺少一步。 到目前為止,我學到的內容如下: 為了使用 IOCP: 在初始化 function 上: 在讀取功能上,我可以這樣做: 現在我很難理解接下來的步驟。 我是否應該在 ReadFile 之后 ...

2021-02-10 11:58:29   1   61    c++ / iocp  
使用 ConnectEx + IOCP 時提取本地端點信息(IP 地址和端口)

[英]Extract local endpoint info (IP address and port) when using ConnectEx + IOCP

我正在嘗試創建一個將使用 IOCP 使用異步 IO 的客戶端應用程序。 我已經做了類似的服務器應用程序並且它工作正常,但是我找不到任何關於如何從通過ConnectEx API 連接的套接字提取本地端點信息的信息。 對於服務器套接字,文檔指出有關本地和遠程端點的信息將成為發送到AcceptEx的緩沖 ...

在 windows 的多線程中使用 IOCP 時如何確保線程安全?

[英]how to ensure thread safe when using IOCP in multithread in windows?

如果我 CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, NULL, 4),那么當調用 PostQueuedCompletionStatus() 時,運行 GetQueuedCompletionStatus() 的 4 個線程可能會從 GetQu ...

2020-07-07 03:53:02   1   81    iocp  
fsync/FlushFileBuffers 是否等待未完成的異步 IOs 完成?

[英]Does fsync/FlushFileBuffers wait for outstanding asynchronous IOs to finish?

后台正在開發DBMS kernel,具體是數據庫檢查點處理。 游戲規則是,在發出 fsync() 之前,我們需要等待文件上未完成的異步 IOs 完成。 我們部署的當前解決方案是在飛行中手動計數異步 IOs,等待此計數到 go 自身為 0,然后再進行 fsyncing 或 FlushFileBuff ...

更改/更新 CompletionKey

[英]Change/Update the CompletionKey

ULONG_PTR CKey = 2; CreateIoCompletionPort(...Ckey...); 在我調用 function 之后,是否可以以某種方式更改/更新 CompletionKey? 此外,serversock 和 clientsock 上發生的操作(例如,AcceptE ...

如何安全地停止 IOCP WSARecv() 任務並釋放 WSAOVERLAPPED 結構?

[英]How to safely stop a IOCP WSARecv() task, and free the WSAOVERLAPPED structure?

我的 IOCP 服務器程序在運行時將花費越來越多的 memory。 在跟蹤 memory 泄漏后,我發現向 WSARecv() 提供的某些 WSAOVERLAPPED 結構從未被回收。 我認為這是因為一些惡意客戶端套接字只建立連接但從不發送數據或關閉。 所以我在每個客戶端套接字上設置了一個 Tim ...

2020-06-02 09:26:51   1   194    c++ / c / iocp  
iocp openssl peer server 與 ConnectEx 連接后關閉連接

[英]iocp openssl peer server closes the connection after connecting with ConnectEx

我在 windows 上使用 iocp 使用 openssl 時遇到問題,目前僅嘗試客戶端模式 我可以使用內存 bios 進行異步寫入和讀取,但是我正在努力使異步連接和握手工作 如果我使用 SSL_connect 連接然后使用 SSL_do_handshake 進行握手然后用內存 bios 替換 b ...

使用 io 完成端口時,WriteFile 是否在立即完成時發布完成數據包

[英]does WriteFile post a completion packet on finishing immediately when using io completion ports

我知道當 WSARecv 與它一起使用時它可能會立即完成,在這種情況下仍會發布完成數據包,並且可以使用 SetFileCompletionNotificationModes 更改此行為 但我想知道使用 WriteFile 的文件和管道的情況,如果我使用 iocp 進行異步讀取和寫入並且操作立即完成, ...

在 .NET / .NET 內核中的異步 I/O 期間,線程池的完成端口線程如何表現?

[英]How do Completion Port Threads of the Thread Pool behave during async I/O in .NET / .NET Core?

.NET / .NET 核心線程池在內部使用兩種不同類別的線程:工作線程和 I/O 完成端口 (IOCP) 線程。 兩者都只是通常的托管線程,但用於不同的目的。 通過不同的 API(例如Task.Start或ThreadPool.QueueUserWorkItem ),我可以在工作線程上啟動 C ...

密集的數據發送中斷 IOCP 事件

[英]intensive data sending breaks IOCP events

我在我的應用程序中使用Windows IOCP幾年沒有任何問題(與小消息的永久TCP通信),但最近我不得不發送非常大的應用程序狀態(25k 消息,總共大約 12Mb)。 我使用 0x2000 字節的緩沖區,結合IOCP事件:首先write觸發WSASend ,所有其他只是填充緩沖區。 當GetQu ...

可以在短時間內過多的WSASend成為問題嗎?

[英]Can too many WSASend in short time be a problem?

我正在用IOCP制作一個簡單的mmorpg服務器。 我實現了一個簡單的移動功能,所以我測試了虛擬客戶端(也是IOCP)。 只有少數客戶連接時,一切正常。 在連接大約500~1000個客戶端之后,一些虛擬客戶端偶爾會讀取奇怪的數據。 我檢查了服務器按照我的預期發送數據,但是當讀取它們的虛擬 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM