iocp

    0熱度

    1回答

    我開發了將消息發送到服務器的IOCP客戶端應用程序。現在我想在其中添加SSL支持,以便使用OpenSSL連接啓用了SSL的服務器應用程序。 我使用 /* Load encryption & hashing algorithms for the SSL program */ SSL_library_init(); /* Load the error strings for SSL & CRYP

    1熱度

    1回答

    假設我有兩個程序,一個客戶端和一個服務器,並且我在同一臺計算機上運行客戶端和服務器(所以速度非常快),並且說客戶端套接字的接收緩衝區是空的,並且服務器不會向客戶端發送任何數據,除非客戶端告訴服務器這樣做。 現在,在客戶端,我打電話WSASend()然後之後我打電話WSARecv(): WSASend(...); // tell the server to send me some data WS

    0熱度

    2回答

    當調用WSASend()時,我必須將它傳遞給WSAOVERLAPPED實例,並且我不能重複使用此WSAOVERLAPPED實例,直到前一個WSASend()操作已完成(即完成數據包已放入完成端口時)。 有沒有一種方法可以知道WSASend()的操作是否已經完成而沒有調用GetQueuedCompletionStatus()?

    1熱度

    1回答

    我正在爲消息傳遞庫編寫IO核心,並考慮libuv與使用Linux上的原始epoll和Windows上的IOCP(以及最終其他人,solaris事件等)我喜歡可移植性libuv,我在看性能。 epoll和IOCP允許多個線程直接等待IO事件,內核執行調度。儘管我沒有任何數字,但比用戶空間調度更有效。 libuv(基於我的閱讀)有一個線程-USafe事件循環,但我可以實現一個領導者跟隨者線程池。我的意

    0熱度

    1回答

    我正在實現一個Win32控制檯文本編輯器,它有一個內部消息隊列,用於傳遞有關哪些區域需要重新繪製,消息來自插件等信息。我更喜歡它默認爲單線程(如果沒有任何事情發生這需要額外的線程)。我考慮2種消息隊列實施策略: 使用通用隊列和Win32事件,所以我可以用WaitForMultipleObjectsEx同時等待內部消息和用戶輸入,同時傳遞控制檯輸入句柄和事件句柄。在這種情況下,文本編輯器可以完全在一

    -1熱度

    1回答

    我正在玩SocketAsyncEventArgs和IO完成端口。 我一直在尋找,但我似乎無法找到.NET如何處理競爭條件。 需要澄清這個堆棧溢出問題: https://stackoverflow.com/a/28690948/855421 作爲一個側面說明,不要忘記,你的要求可能已同步完成。也許你正在一個while循環中讀取TCP數據流,一次讀取512個字節。 如果套接字緩衝區中有足夠的數據,則可

    0熱度

    2回答

    編寫iocp控制檯服務器並不容易,套接字池和線程池運行良好,但經過一段時間後,服務器無法連接agagin,沒有發生任何錯誤,爲什麼?我使用procexp_16.05.1446001339.exe來檢查進程屬性,我發現很多close_wait狀態,經過一段時間agagin,close_wait狀態消失,但服務器仍然無法連接?爲什麼?以及如何解決它? #include "stdafx.

    0熱度

    1回答

    我目前正在使用C++編寫服務器應用程序。我的主要啓示有這些例子: Windows SDK IOCP Excample The I/O Completion Port IPv4/IPv6 Server Program Example 我的應用程序是強烈類似於這些(socketobj,packageobj,...)。 一般來說,我的應用程序運行沒有問題。仍然導致我麻煩的唯一的事情是半開放的連接。 我的

    0熱度

    1回答

    我看到一些應用程序使用多個套接字。例如聊天,他們使用獨特的套接字和文件上傳他們使用其他套接字等。爲什麼這個過程是需要時,可以在一個套接字完成?是因爲他們處理連接的方式,並在每次接受呼叫後打開一個新的連接插槽? 我的工作IOCP聊天應用程序,我得到了通過該方案感到困惑。如果我要處理的連接,我還能保持1個插槽爲每個客戶端,但如果客戶端發送的文件有沒有辦法讓我的服務器來分配內存文件上傳,因爲我處理新接受

    4熱度

    1回答

    我有以下簡化的IO完成端口服務器C++代碼: int main(..) { startCompletionPortThreadProc(); // Await client connection sockaddr_in clientAddress; int clientAddressSize = sizeof(clientAddress);