【发布时间】:2011-06-23 11:40:50
【问题描述】:
我有 asp.net 网站。当我在页面加载之前使用 Thread.Sleep 创建测试页面时。有用于登录的表单身份验证。等待一小时后,页面会自动注销。所以我想看看这个注销的原因是什么。我计划使用 C# 代码捕获所有 HttpConnection 通信。我只想看到通讯关闭的原因。我正在使用 Visual Studio 2005 在本地机器上运行该网站。
您能否分享实现此功能的代码?
注意:我知道这可以使用 tcpDump 之类的工具来实现。但目前我正在尝试单独为这个功能开发一个代码——看看连接关闭/注销的原因。
更新:
我有以下代码。但是我如何完成我的任务 - 如何找到所有连接关闭/注销的原因。请帮助我,因为我对套接字编程完全陌生。
protected void Page_Load(object sender, EventArgs e)
{
IPHostEntry host;
string localIPAddress = "?";
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily == AddressFamily.InterNetwork)
{
localIPAddress = ip.ToString();
}
}
System.Net.Sockets.Socket mySocket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Raw, System.Net.Sockets.ProtocolType.IP);
mySocket.Bind(new System.Net.IPEndPoint(System.Net.IPAddress.Parse(localIPAddress), 0));
mySocket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.IP, System.Net.Sockets.SocketOptionName.HeaderIncluded, 1);
byte[] inBytes = new byte[] { 1, 0, 0, 0 };
byte[] outBytes = new byte[] { 0, 0, 0, 0 };
mySocket.IOControl(System.Net.Sockets.IOControlCode.ReceiveAll, inBytes, outBytes);
}
【问题讨论】:
-
为什么是问号
string localIPAddress = "?";? -
尝试使用
try{}catch{}包围您的代码。查看是否有任何异常被抛出。 -
也不例外。我正在寻找可以告诉如何查找所有连接的开始和关闭时间、连接注销时间、连接注销/关闭/过期原因等的代码。请帮助
标签: c# .net asp.net windows sockets