Я работаю над программой Embedded Sensor Cloud (клиент-сервер) на C #, и мне не известна проблема, и мне нужна ваша помощь: D
Ниже вы можете увидеть мой код на стороне сервера, и у меня проблема в том, что всякий раз, когда я запускаю программу в режиме отладки, все работает довольно хорошо, но если я запускаю ее как обычно, мой запрос на открытие файла HTML с моего Localhost делает не работает, и браузер отправляет на сервер какой-либо пустой запрос, и он не может идти дальше.
это мой код на стороне сервера:
private static void Listen()
{
IPAddress ipAddress = IPAddress.Any;
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 8081);
Socket listener = new Socket(ipAddress.AddressFamily,
SocketType.Stream, ProtocolType.Tcp);
try
{
listener.Bind(localEndPoint);
listener.Listen(10);
while (true)
{
Console.WriteLine("Waiting for Connection");
Socket handler = listener.Accept();
Console.WriteLine("connected");
NetworkStream stream = new NetworkStream(handler);
if (stream.DataAvailable)
{
Request req = new Request(stream);
Dictionary<string, string> header = new Dictionary<string, string>(req.Headers);
PluginManager ipm = new PluginManager();
IPlugin plug = SelectPlugin(ipm, req);
if (plug != null)
{
foreach (var item in header)
{
Console.WriteLine(item);
}
IResponse rep = plug.Handle(req);
rep.Send(stream);
Console.WriteLine("Success");
stream.Close();
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}
else
{
IResponse resp = new Response()
{
StatusCode = 404,
ContentType = "text/html",
};
resp.Send(stream);
break;
}
}
else
{
Console.WriteLine("Data not Available");
}
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
Это то, что я получаю при запуске в режиме отладки:
Waiting for Connection
connected
[get .../index.html HTTP/1.1]
[user-agent, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134]
[accept-language, en-US,en;q=0.8,de-DE;q=0.6,de;q=0.4,fa;q=0.2]
[accept, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
[upgrade-insecure-requests, 1]
[accept-encoding, gzip, deflate]
[host, 8081]
[connection, Keep-Alive]
Success
и вот когда я запускаю это нормально:
Waiting for Connection
connected
Data not Available
Waiting for Connection
сокет больше не может прослушивать входящее соединение. Кто-нибудь знает почему?