我想访问 HttpRequest 中的底层套接字,以检查套接字的套接字选项。
protected void Page_Load(object sender, EventArgs e)
{
Socket s = Request.????;
Object result = s.GetSocketOption(SocketOptionLevel.IP,xxx);
/// do something else
}
知道如何获取这些信息吗?
请注意,代码在 Azure 上运行。
最佳答案
不幸的是,我不得不做一个解决方法。我在不同的端口上创建了一个 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
}
关于c# - 获取 HttpRequest 的底层套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19764773/