我想增加使用Boost ASIO的udp遊戲服務器的吞吐量。 現在,每次我需要發送一個數據包,我將它放入一個隊列中,然後檢查是否有掛起的async_send_to操作,如果是,則不做任何操作,如果沒有,則調用async_send_to。 然後我等待寫入處理程序被調用,然後調用async_send_to爲隊列中的下一個數據包(如果有的話)。多次Boost :: ASIO async_send_to一次去
該文件說,這是「TCP套接字」的做法,但沒有什麼關於UDP套接字的整個互聯網。 嘗試一下,在stackoverflow上搜索它,你會看到沒有人會談論這個,對於你會發現的兩個問題,這個問題被用戶忽略。
爲什麼它保密? 對於100萬美元的問題,我可以安全地調用async_send_to連續多次不等待寫入處理程序被調用?
在此先感謝。
所以爲了確保,我能夠在一行中調用所有async_send_to,而不必等待寫入處理程序被調用,當然保持緩衝區有效直到處理程序被調用? – NoobyLearner