Существует ли современный эквивалент элемента управления Winsock VB6 в Visual Studio .net? - PullRequest
0 голосов
/ 08 ноября 2019

В свое время VB6 имел элемент управления Winsock.ocx , который предоставлял совершенно простой доступ к соединениям UDP и TCP. Он выявлял события, которые запускались при получении данных, а интерфейс был чрезвычайно прост и понятен в использовании. Вы могли бы создать приложение клиент / сервер TCP или приложение связи UDP за считанные минуты.

Перемотка вперед к VB.NET , и все, что у нас, похоже, есть библиотеки System.Net.Sockets, такие как UdpClient, которые чрезвычайно запутаны в использовании. Они либо требуют использования Task с или Thread с, либо Receive() вызов блокирует до тех пор, пока данные не поступят, замораживая весь пользовательский интерфейс до получения сообщения.

Комумне это кажется шагом назад, но, может быть, я что-то упускаю.

Есть ли альтернативная библиотека / плагин, который обеспечивает:

  1. События, которые запускаются при получении данных и т. д.
  2. Нет необходимости иметь дело с потоками или задачами
  3. Не блокирует и может использоваться в приложении WinForms
  4. Простой способ отправки / получения произвольных данных через соединения UDP или TCP?

1 Ответ

1 голос
/ 08 ноября 2019

В .net нет встроенного элемента управления, подобного Winsock. По сути, вы должны использовать System.Net.Sockets членов, таких как TcpClient или UdpClient, чтобы делать все это. Есть примеры того, как использовать это пространство имен, чтобы позаботиться о сценариях программирования сокетов в .net.

TcpClient
https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.tcpclient?view=netframework-4.8

UdpClient
https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.udpclient?view=netframework-4.8

и я советую проверить остальные примеры в этой области, например, как использовать слушателей и так далее.

...