我想收到一串數據。所以有時數據可能會枯竭。在那種情況下,如果Receive
方法返回到目前爲止所收到的內容,那將會很不錯。將流式傳輸Socket.Receive塊,直到它填充緩衝區?
當我使用.Net Socket
,我把它稱爲Receive
方法,將調用塊,直到它能夠完全填充緩衝區?或者一旦能夠返回至少1個字節,它會立即返回? (假設套接字未關閉)
難道問題,如果我通過一個尺寸參數明確?異步方法BeginReceive
會有什麼影響嗎? (我猜在這兩種情況下,行爲將是相同的)
當閱讀this answer時,似乎你應該總是期望緩衝區被填滿,因爲它建議你做一個while (bytesRead == bytesRequested)
。但the MSDN documentation中的一個示例使用了一個while (bytesRead > 0)