Привет, я пытаюсь использовать программу проверки портов, написанную в Visual Studio 2008 с использованием 3.5 SP 1 .Net Framework, и у меня, похоже, возникла проблема с использованием моей программы в ОС на базе Vista (в данном случае реальной ОС). Windows Server 2008 (32- и 64-разрядные машины), хотя он отлично работает на компьютерах с XP. Я не совсем уверен, в чем проблема, но я получаю исключение System.NotSupportedException. Любые идеи о том, как я могу изменить следующий код (или, предпочтительно, конфигурацию машины), чтобы разрешить этот тип проверки порта?
static bool IsPortOpen(int portNumber)
{
bool isOpen = false;
IPAddress ip = (IPAddress)Dns.GetHostAddresses("localhost")[0];
Socket s = null;
try
{
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp))
s.Connect(ip, portNumber);
// Port is in use and connection is successful
if (s.Connected == true)
{
isOpen = false;
}
}
catch (SocketException exception)
{
// http://msdn.microsoft.com/en-us/library/ms740668(VS.85).aspx
if (exception.ErrorCode == 10061)
{
isOpen = true;
}
}
finally
{
if (s != null)
{
s.Close();
}
}
return isOpen;
}