假設我有一個有多個客戶端(UDP)的服務器。每當從客戶端收到一個數據包時,服務器將花費1秒處理數據包,並在處理後立即向所有客戶端發送一個新數據包。在一個套接字上的多個UDP數據包
如果10個數據包在0.1秒內到達,服務器是否可以做到這一點?換句話說,是否能夠在處理完第一個接收到的數據包之後立即向每個客戶端發送一個新數據包? (我有一個插座會得到由9個其他未讀取數據包「堵塞」了的感覺)
服務器循環將是這樣的:
while (1) {
read_a_packet()
process_packet()
send_new_packet_to_all_clients()
}
我不關心如何填充緩衝區,但是使用這個: 如果套接字緩衝區部分被填滿,當我嘗試發送一個數據包時會發生什麼? – user990814
緩衝區已滿時,您可能會擔心丟失數據包。至於發送數據包 - 無論套接字輸入的狀態如何,您都可以隨時發送數據包。 –
好的謝謝。其實我給的數字是誇張的,在我的應用程序中,處理時間通常遠低於接收到的數據包之間的時間,但我想知道如果正在處理另一個數據包時收到數據包會發生什麼情況。 – user990814