在不存在的网络连接上尝试操作,错误代码1229
本文关键字:操作 错误代码 1229 不存在 网络 连接 | 更新日期: 2023-09-27 17:54:03
正在制作一个简单的HttpListener,突然这个异常弹出。
在不存在的网络连接上尝试操作。
花了几个小时寻找解决方案,但没有找到。当我将数据从网页提交到HttpListener
时,代码就崩溃了。有人能告诉我如何解决这个问题吗?
代码如下:
c#
public static void StartListening()
{
Stream ouputStream;
HttpListener listener = new HttpListener();
SetPrefixes(listener);
if (listener.Prefixes.Count > 0)
{
listener.Start();
Console.WriteLine("HttpClient Started");
while(true)
{
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request= context.Request;
HttpListenerResponse response = context.Response;
string html = Properties.Resources.index;
byte[] webPageBuffer = Encoding.UTF8.GetBytes(html);
response.ContentLength64 = webPageBuffer.Length;
ouputStream = response.OutputStream;
ouputStream.Write(webPageBuffer, 0, webPageBuffer.Length);
ouputStream.Flush();
Common.Wait(2000);
String url = request.RawUrl;
String[] queryStringArray = url.Split('/');
String postedtext = GetPostedText(request);
byte[] buffer = null;
// Lots of if statements because a switch would not work here.
if(queryStringArray[0] == "myForm")
{
buffer = System.Text.Encoding.UTF8.GetBytes("I recieved myForm");
}
if(queryStringArray[1] == "doSomething")
{
buffer = System.Text.Encoding.UTF8.GetBytes("I recieved doSomething");
}
if(buffer != null)
{
response.AddHeader("Cache-Control", "no-cache");
response.AddHeader("Acces-Control-Allow-Origin","*");
response.ContentLength64 = buffer.Length;
ouputStream = response.OutputStream;
ouputStream.Write(buffer, 0, buffer.Length);
ouputStream.Close();
}
}
}
}
private static void SetContext(HttpListenerContext context, Stream ouputStream)
{
// De GetContext methode blokkeert terwijl die wacht op een aanvraag(request)
}
private static void SetPrefixes(HttpListener listener)
{
String[] prefixes = new String[] { "http://localhost:8100/", "http://192.168.33.28:8000/" };
int i = 0;
foreach (string s in prefixes)
{
listener.Prefixes.Add(s);
i++;
}
}
private static string GetPostedText(HttpListenerRequest request)
{
string recievedText;
using(StreamReader reader = new StreamReader(request.InputStream, request.ContentEncoding))
{
recievedText= reader.ReadToEnd();
}
if (recievedText != "")
{
Console.WriteLine("{0} RECIEVED: " + recievedText, DateTime.Now);
}
return recievedText;
}