13

.NET Framework を使用してすべてのアクティブな TCP 接続を取得するにはどうすればよいですか (管理されていない PE のインポートはありません!)。

私はソケットプログラミングに取り組んでおり、これを確認したいと思います。私の調査では、興味のないアンマネージ DLL ファイルをインポートすることで解決策を見つけました。

4

1 に答える 1

31

純粋なマネージド コードでは不可能であると言うユーザーの数に驚いています...それについて疑問に思っている将来のユーザーのために、私にとってうまくいった回答から詳細を見つけてください:

//Don't forget this:
using System.Net.NetworkInformation;

public static void ShowActiveTcpConnections()
{
    Console.WriteLine("Active TCP Connections");
    IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
    TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();
    foreach (TcpConnectionInformation c in connections)
    {
        Console.WriteLine("{0} <==> {1}",
                          c.LocalEndPoint.ToString(),
                          c.RemoteEndPoint.ToString());
    }
}

そしてそれをリストするために電話ShowActiveTcpConnections()してください、素晴らしくて美しいです。

ソース: IPGlobalProperties.GetActiveTcpConnections メソッド(MSDN)

于 2012-12-10T19:16:09.983 に答える