Peter: Hi, Alex
Alex: Glad to see you!
Peter: I wonder, can I download one of your. . .
Здесь Peter и Alex являются псевдонимами беседующих персон. При выходе из сеанса одного из клиентов сервер должен вывести сообщение: 127.0.0.1.Alex said good-bye. При обмее данными используйте сложные имена (имя или адрес сервера-точка-nick), но в консольные окна выводите только nick.
Классы .NET Framework значительно упрощают работу с объектами сетевого программирования. Во второй версии Framework появилось несколько новых пространств имен, которые содержат классы, реализующие большую часть функций, необходимых для разработки сетевых приложений и управления сетевыми устройствами. Пространство System.Net содержит 6 пространств: Cache, Configuration, Mail, Mime, NetworkInformation, Sockets.
Класс 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";
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.