Использование TCP в .NET Framework
Использование TCP в .NET Framework
TCP и UDP являются протоколами транспортного уровня, на основе которых построено большинство служб Интернета и локальных вычислительных сетей. Протоколы HTTP, FTP и SMTP используют TCP, a DNS — UDP. Протокол TCP ориентирован на подключение и поддерживает механизмы обеспечения надежности; UDP является протоколом без установления подключения, характеризуется низкими накладными расходами и поддерживает широковещательную рассылку. Протокол BitTorrent использует UDP, как и Voice over IP.
Транспортный уровень обеспечивает большую гибкость — и потенциально улучшенную производительность — по сравнению с более высокими уровнями, но требует отдельной обработки таких задач, как аутентификация и шифрование.
Благодаря поддержке TCP в .NET, можно работать либо с простыми в использовании фасадными классами TcpClient и TcpListener, либо с обладающим широкими возможностями классом Socket. (В действительности их можно сочетать, поскольку класс TcpClient открывает доступ к лежащему в основе объекту Socket через свойство Client.) Класс Socket предоставляет больше опций конфигурации и позволяет прямой доступ к сетевому уровню (IP) и протоколам, не основанным на Интернете, таким как SPX/IPX от Novell.
Как и с другими протоколами, TCP различает клиент и сервер: клиент инициирует запрос, а сервер ожидает запрос. Ниже показана базовая структура для синхронного запроса клиента TCP:
using (TcpClient client = new TcpClient ())
{
client.Connect («address», port);
using (NetworkStream n = client.GetStream())
{
// Читать и записывать в сетевой поток…
}
}
Метод Connect класса TcpClient блокируется вплоть до установления подключения (метод ConnectAsync является его асинхронным эквивалентом). Затем объект NetworkStream предоставляет средство двухсторонних коммуникаций для передачи и получения байтов данных из сервера.
Данная статья подготовлена при поддержки специалистов технической службы компании ipann.net. Виртуальные анонимные прокси от ipann.net — это качественное обслуживание, низкие цены на надежное оборудование и вежливая поддержка.