1
我正在嘗試創建一個簡單的HTTP服務器以獲得學習體驗。服務器應該接收請求數據併發迴響應數據。要開始,我創建了一個Socket
。不幸的是我不知道如何正確實現接收部分。作爲HTTP服務器正確接收請求數據通過套接字
我相信我不能撥打socket.Receive
並始終期望所有數據成功傳輸。我將不得不使用循環來繼續流式傳輸數據。我不明白哪個條件應該停止流式傳輸數據!
檢查讀取的字節數量是否不起作用,因爲只有在連接關閉時纔會發生這種情況。我應該如何實現它?
var listen = new TcpListener(IPAddress.Parse("127.0.0.1"), 8070);
listen.Start();
var con = listen.AcceptSocket();
listen.Stop();
using (var ms = new MemoryStream())
{
while (???) //what condition should stop the streaming?
{
var buffer = new byte[8000];
int read = con.Receive(buffer);
ms.Write(buffer, 0, read);
}
}