gpt4 book ai didi

c# - Windows 服务上的本地 Http 服务器

转载 作者:行者123 更新时间:2023-11-30 22:18:45 25 4
gpt4 key购买 nike

我使用此代码编写用作本地 http 请求服务器的 Windows 服务。

public void StartMe()
{
System.Net.IPAddress localAddr = System.Net.IPAddress.Parse("127.0.0.1");
System.Net.Sockets.TcpListener server = new System.Net.Sockets.TcpListener(localAddr, 1234);
server.Start();
Byte[] bytes = new Byte[1024];
String data = null;
while (RunThread)
{
System.Net.Sockets.TcpClient client = server.AcceptTcpClient();
data = null;
System.Net.Sockets.NetworkStream stream = client.GetStream();
stream.Read(bytes, 0, bytes.Length);
data = System.Text.Encoding.ASCII.GetString(bytes);

System.IO.StreamWriter sw = new System.IO.StreamWriter("c:\\MyLog.txt", true);
sw.WriteLine(data);
sw.Close();

client.Close();
}
}

我对这段代码有一些疑问:首先,在 data 字符串中,在浏览器中写入此 URL http://127.0.0.1:1234/helloWorld

后,我得到了这样的东西
GET /helloWorld HTTP/1.1
Host: 127.0.0.1:1234
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
Accept-Encoding: gzip,deflate,sdch
Accept-Language: he-IL,he;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: windows-1255,utf-8;q=0.7,*;q=0.3

我想知道如何从这个例子中只得到 helloWorld。第二个问题是我希望服务器对浏览器做出响应,它只给我关闭连接。

最佳答案

我几天前问过类似的问题。更好地实现 HTTPListener-Class。让生活更轻松。

看这个例子: http://msdn.microsoft.com/de-de/library/system.net.httplistener%28v=vs.85%29.aspx

你的 HelloWorld 是这样检索的:

HttpListenerContext context = listener.GetContext(); // Waits for incomming request
HttpListenerRequest request = context.Request;
string url = request.RawUrl; // This would contain "/helloworld"

如果你想等待不止一个请求,要么实现 Asynchronos 方式,要么像这样:

new Thread(() =>
{
while(listener.IsListening)
{
handleRequest(listener.GetContext());
}

});
...

void handleRequest(HttpListenerContext context) { // Do stuff here }

那个代码示例是从我脑海中冒出来的。它可能需要一些摸索才能很好地工作,但我希望你明白这一点。

关于c# - Windows 服务上的本地 Http 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15930394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com