2

我想访问 HttpRequest 中的底层 Socket 以检查套接字的套接字选项。

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

知道如何获取这些信息吗?

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

4

1 回答 1

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
}
于 2013-11-13T12:51:51.257 回答