Класс EndPoint, расположенный в пространстве имен System.Net (не путайте его с классом Endpoint, который существует в пространстве имен Microsoft.SqlServer.Management.Smo) является абстрактным родителем семейства классов, реализующих функциональность сетевых ресурсов или служб.
¨ IPEndPoint содержит пару (IP-адрес, номер порта) и реализует функциональность одного из концов (локального или удаленного) сетевого соединения. С помощью объекта класса IPEndPoint приложение получает доступ к какой-либо службе (network service) на host-компьютере.
¨ IrDAClient обслуживает беспроводное соединение (infrared connection). С помощью этого класса производится обнаружение, подключение и обмен данными с устройствами, использующими инфракрасное излучение.
¨ IrDAListener переводит сетевой разъем в режим прослушивания и мониторинга беспроводного соединения
¨ IrDAEndPoint представляет концевой узел беспроводного (инфракрасного) соединения.
¨ IrDADeviceInfo хранит информацию об устройствах, обменивающихся данными с помощью инфракрасного излучения.
Мы не будем подробно рассматривать технологию работы с беспроводными устройствами, но для того, чтобы уяснить роль новых классов, обозначим схему процесса обмена информацией. Логика обнаружения устройств, включения режима прослушивания и получения информации от устройства-источника выглядит таким образом.
IrDAClient client = new IrDAClient();
IrDADeviceInfo[] devices = client.DiscoverDevices(2); // Хотим работать с 2-мя устройствами
if (devices.Length == 0)
return;
IPEndPoint point = new IrDAEndPoint (devices[0].DeviceID, "MyService");
IrDAListener listener = new IrDAListener (point);
listener.Start(); // Ожидание информации
client = listener.AcceptIrDAClient(); // Когда началась передача информации
Stream stream = client.GetStream(); // Получаем информацию
В пространстве имен System.Net.NetworkInformation вы обнаружите классы, которые дают доступ к данным о сетевых адресах, сетевом трафике, позволяют вводить реакции на события в системе (например, изменение сетевых адресов локального компьютера) и производить много других действий по управлению сетью.
¨ Класс IPGlobalProperties предоставляет информацию о конфигурации сетевых интерфейсов локального компьютера и его соединениях. С помощью метода GetIPGlobalProperties можно получить данные о сетевых соединениях и статистику их трафиков.
¨ Класс Ping реализует функциональность известной утилиты с тем же именем и позволяет проверить доступность того или иного компьютера в сети.
Следующий пример отображает некоторые данные, полученные с помощью методов и свойств этих классов. Проверьте его работу в рамках консольного проекта. Для этого вы можете добавить новый проект типа Visual C# Console Application (с именем SocketApp) к существующему решению WinSock.
public static void Main()
{
IPGlobalProperties p = IPGlobalProperties.GetIPGlobalProperties();
string
header = "Global information for host computer: " + p.HostName + '.' + p.DomainName,
line = "\n" + new string('\u2500', header.Length) + "\n";
Console.WriteLine (header + line + "\n{0,-28}: {1:f}\n{2,-28}: {3}\n{4,-28}: {5}\n",
"Node type",p.NodeType, "DHCP scope",p.DhcpScopeName, "WINS proxy",p.IsWinsProxy);
PingOptions options = new PingOptions (1, true);
byte[] buffer = Encoding.ASCII.GetBytes("Do you hear me?");
Ping ping = new Ping();
PingReply reply = ping.Send (Dns.GetHostName(), 120, buffer, options);
if (reply.Status == IPStatus.Success)
{
Console.Write("\nPinging host"+line.Substring (0, 13)+ "\n\n{0,-28}: ","Received");
foreach (byte b in reply.Buffer)
Console.Write(Convert.ToChar(b));
Console.Write("\n{0,-28}: {1}\n{2,-28}: {3}\n{4,-28}: {5}\n{6,-28}: {7}\n{8,-28}: {9}",
"Address", reply.Address.ToString(),
"RoundTrip time", reply.RoundtripTime,
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.