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);
}
}