获取HttpRequest的底层Socket

时间:2013-11-04 09:28:16

标签: c# asp.net sockets

我希望能够访问HttpRequest中的底层Socket,以检查socket是否有套接字选项。

protected void Page_Load(object sender, EventArgs e)
{
    Socket s = Request.????;
    Object result = s.GetSocketOption(SocketOptionLevel.IP,xxx);
    /// do something else
}

知道如何获取此信息吗?

请注意,代码在Azure上运行。

1 个答案:

答案 0 :(得分:1)

不幸的是,我不得不做一个解决方法。我在另一个端口上创建了一个TCPListener,它在较低级别处理基本HTTP请求,但捕获套接字中的信息。主HTTP对此进行了重定向以找出ToS。

private void HandleAsyncConnection(IAsyncResult result)
{
  // Accept connection 
  TcpListener listener = (TcpListener)result.AsyncState;
  TcpClient client = listener.EndAcceptTcpClient(result);
  client.Client.GetSocketOption(SocketOptionLevel.IP, SocketOptionName.TypeOfService);
  ...
  // and then I do a redirect in HTTP
}