sockets - httplistener异步和同步的区别

标签 sockets http asynchronous httplistener

我想在客户端上监听网络浏览器的请求。我知道我应该使用 HttpListener 但我不知道使用异步还是同步?使用 BeginGetContext 还是 GetContext

try
{
    HttpListener listener = new HttpListener();
    listener.Prefixes.Add[this is not a link]("http://127.0.0.1:9080/");  
    listener.Start();

    Console.WriteLine("im listening...");

    HttpListenerContext context = listener.GetContext();
    HttpListenerRequest request = context.Request;
}
catch(exception e)
{
   console.writeline(e.tostring());
}

最佳答案

I have written before about the trade-off between synchronous and asynchronous IO.因为永远只有一个线程占用接受新客户端同步 IO 很好。您最多可以节省一个线程,这是微不足道的节省。

您可能希望使实际请求处理异步。如果您有许多并发请求,这可能是个好主意。如果您的并发请求很少,您将一无所获。

请记住,异步 IO 通常工作量更大且更容易出错。在有充分理由的情况下使用它。

关于sockets - httplistener异步和同步的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25341651/

相关文章:

c - 向文件服务器发送系统调用

node.js - Docker请求拥有服务器

http - 是否可以判断 HTTP 请求是否源自 "save link as"操作?

java - 我可以使用带有 log4j.properties 文件的 log4j 1.x 异步运行我的日志吗?

node.js - Scala 真的是异步的吗

java - 从 java 检查服务可用性

node.js - 将我的 SSL key 和证书文件传递给 Socket.IO 是否安全?

javascript - 在 Ember 中保存预订时使用关系更新已经存在的事件

c - 网络不好的 C 中的 TCP 套接字

apache - 在 apache http 客户端 4.3.6 中使用经过身份验证的代理