Что такое порт в программировании

Проброс через настройки роутера

Ту же самую процедуру необходимо провести в настройках роутера. Для этого нужно следовать представленному руководству (работает только у пользователей со статическим IP):

  1. Откройте браузер и введите IP устройства в адресную строку. Обычно этим адресом является 192.168.1.1 или 192.168.0.1 (посмотреть точный адрес роутера можно в документации или на задней панели устройства).

  1. Авторизуйтесь с помощью логина и пароля.

  1. В боковом меню нажмите на пункт WAN и перейдите в отмеченную вкладку.

  1. Нажмите на «Да» (1), введите название правила, точное значение 25565 в оба поля (2) и нажмите кнопку «Добавить» (3). Эту операцию необходимо проделать для UDP и TCP протоколов.

Встроенные инструменты контроля портов

Мы предлагаем две команды, чтобы показать список. В первом списке отображаются активные порты вместе с именем процесса, который их использует. В большинстве случаев эта команда будет работать нормально. Иногда, однако, имя процесса не поможет вам определить, какое приложение или служба фактически использует порт. В таком случае вам нужно будет перечислить активные порты вместе со номерами идентификатора процессов, а затем просмотреть эти процессы в диспетчере задач.

Просмотр портов вместе с именами процессов

Во-первых, вам нужно открыть командную строку в режиме администратора. Нажмите «Поиск», а затем введите «командная» в поле поиска. Когда вы увидите «Командная строка» в результатах, щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора».

В командной строке введите следующий текст и нажмите «Ввод»:

netstat -ab

После того, как вы нажмете Enter, результаты могут занять минуту или две для полного отображения, поэтому будьте терпеливы. Прокрутите список, чтобы найти порт (который указан после двоеточия справа от локального IP-адреса), и вы увидите имя процесса, использующего этого порт.

Если вы хотите сделать это немного проще, вы также можете выгрузить результаты команды в текстовый файл. Затем вы можете просто найти номер порта в текстовом файле.

Здесь, например, вы можете видеть, что порт 62020 связан процессом Skype4Life.exe. Skype – это приложение для общения между пользователями, поэтому мы можем предположить, что этот порт фактически связан процессом, который регулярно проверяет наличие обновлений для приложения.

Просмотр портов вместе с идентификаторами процессов

Если имя процесса для номера порта, который вы просматриваете, затрудняет определение того, какому приложению он соответствует, вы можете попробовать версию команды, которая показывает идентификаторы процессов (PID), а не имена. Введите следующий текст в командной строке, а затем нажмите Enter:

netstat -aon

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

Затем откройте диспетчер задач, щелкнув правой кнопкой мыши любое открытое пространство на панели задач и выбрав «Диспетчер задач».

Если вы используете Windows 8 или 10, перейдите на вкладку «Подробности» в диспетчере задач. В более старых версиях Windows вы увидите эту информацию на вкладке «Процессы». Отсортируйте список процессов по столбцу «ИД процесса» и найдите PID, связанный с портом, который вы исследуете. Возможно, вы сможете узнать больше о том, какое приложение или служба использует указанный порт, посмотрев столбец «Описание».

Если нет, щелкните процесс правой кнопкой мыши и выберите «Открыть расположение файла». Расположение файла, скорее всего, даст вам подсказку о том, какое приложение задействовано.

Проверка

Для проверки обычно используют два метода – сайт 2ip.ru и командную строку. Разберемся, как проверить порт через сайт:

  1. Откройте ссылку https://2ip.ru/ и перейдите в раздел «Проверка порта».
  1. Впишите интересующий вас номер и нажмите на кнопку «Проверить».

Чтобы выполнить проверку через командную строку, необходимо:

  1. Запустить приложение через поиск.
  1. Ввести команду «netstat –a» и нажать на Enter.
  1. На экране вы увидите список портов, которые открыты в данный момент.

Ниже представлена таблица с некоторыми востребованными TCP/UDP ports. Общеизвестные и зарегистрированные значения включают в себя промежуток от 0 до 49151. Диапазон от 49152 до 65535 используется для кратковременных соединений типа «клиент – сервер».

Номер Назначение
80 Подключение к HTTP
280 Подключение к HTTP-MGMT
3389 Удаленный рабочий стол
443 Подключение к HTTPS, различные игры
515 Служба печати
666 MDQS, игры DOOM
989 FTPS-DATA
990 FTPS
1167 Системы конференц-связи
1234 Потоковое видео, плеер VLC
1241 Nessus Security Scanner
5121 Neverwinter Nights
6969 BitTorrent
8621 Ace Stream
16591 Доступ к IP-камерам и регистраторам с мобильных устройств
19226 Panda Software
27015 Игры серии Half-Life
27018 Сервис Steam
29900 Nintendo Wi-Fi Connection
37904 LG TV

Создание приложения

Во-первых, давайте рассмотрим, как должно выглядеть наше приложение, и что оно должно вообще делать. Этот этап проектирования значительно упрощается благодаря конструктору и возможности предварительного просмотра. Вам обязательно понадобится панель для настройки соединения и способа отправки и получения сообщений.

На первых этапах имеет смысл сделать простой терминал с двумя текстовыми полями. Один будет отображать отправленные сообщения, а другой — полученные сообщения, или одно текстовое поле для всех сообщений. Позже можно будет расширить функциональные возможности для передачи данных в соответствии с некоторым более продвинутым протоколом, например, для непрерывного получения данных от датчиков робота, чтения содержимого EEPROM или для управления сервоприводами.

Наше приложение будет состоять из трех вкладок — терминал общего назначения, протокол связи с конкретным микроконтроллером и вариант подключения.

Давайте увеличим наше окно. В опциях вы также можете изменить имя, текст и размер шрифта для облегчения работы в дальнейшем и улучшения эстетики. Затем, найдя его на панели инструментов в группе Containers TabControl, давайте добавим его в наше окно. В опциях Tab найдите параметр Dock и установите для него значение Fill. После этого он заполнит все окно. Затем найдите параметр «Tab Pages» и нажмите кнопку «…». Там мы добавляем третью вкладку и меняем имя и отображаем текст, как показано на картинке ниже:

Название и текст второй таблицы мы пока не меняли. Сначала мы сделаем терминал, а вкладку зарезервируем для более изощренного способа связи. Вы же можете использовать только вкладки с параметрами и терминалом, т.к. управлять вкладками очень просто и требует только использования кнопок Add и Remove. Теперь переходим на вкладку параметров и добавляем такие элементы, как label, combobox и button.

Не забывайте изменить поля «Text» и «Name» в параметрах. Мы меняем имена на такие, чтобы было понятно, для чего предназначен каждый элемент.

Для ComboBox, связанных со скоростью передачи и количеством битов данных, элементы этого набора должны быть определены вручную. Найдите опцию «Items» и нажмите на точки рядом со словом «Collection». Здесь мы вводим значения от 5 до 9 для битов данных, каждое из которых разделяется вводом. Во втором вводим все стандартные скорости передачи, то есть:

2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
230400

1
2
3
4
5
6
7
8
9
10
11
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
230400

После создания вкладки опций, аналогичной изображенной на картинке, мы можем перейти к проектированию терминала. Наш выглядит так:

Он состоит из двух кнопок. Красный квадрат будет кнопкой начала / завершения и одновременно покажет текущий статус.

В большом текстовом поле будут показаны отправленные / полученные данные в шестнадцатеричном коде. В маленьком числовом поле вы сможете выбрать значение нового байта для отправки в шестнадцатеричном коде.

Нажатие кнопки «Отправить» отправит текущее значение через COM-порт, а «Очистить» очистит журнал действий. Следует помнить о некоторых настройках параметров. В PictureBox мы устанавливаем BackColor → Red , в RichTextBox мы устанавливаем ReadOnly →True, чтобы случайно не изменить содержимое логотипа.

В NumericUpDown мы меняем параметр Hexadecimal на true, чтобы числа отображались в шестнадцатеричном формате, а минимальные и максимальные значения на 0 и 255 соответственно, чтобы они помещались в один байт.

Таким образом, нам удалось завершить этап «проектирования» нашего приложения. До сих пор все было просто и не имело ничего общего с настоящим программированием. Наше приложение уже выглядит неплохо, и после компиляции оно даже получило некоторые функции, такие как выбор байтового значения или возможность выбора некоторых параметров из раскрывающегося списка.

Следующим шагом будет добавление функций к соответствующим кнопкам и реализация последовательного подключения. Но мы будем делать это обычным программированием, а не перетаскиванием элементов и изменением их свойств.

Как мне правильно защитить порты?

По умолчанию все порты должны быть закрыты, если только вы не используете определенную службу и не должны ее открывать

Очень важно всегда иметь наименьшее количество экспортируемых локальных сервисов, так как поверхность атаки будет меньше. Брандмауэры позволят нам автоматически закрыть все порты и открывать только те, которые нам нужны

Используемое программное обеспечение, открывающее сокет TCP или UDP, важно, чтобы оно было актуальным, мало полезно закрывать все порты, кроме одного, если служба, работающая на этом порту, не обновлена ​​и имеет недостатки безопасности. По этой причине так важно обновлять все программное обеспечение, всегда рекомендуется использовать программное обеспечение, которое все еще поддерживается, для получения различных обновлений

Если для доступа к определенной службе требуется аутентификация, необходимо, чтобы учетные данные были надежными, по возможности используйте цифровые сертификаты или ключи SSH (если вы собираетесь аутентифицироваться на сервере SSH). Например, всегда рекомендуется закрывать порт 23 Telnet, потому что это небезопасный протокол, и поэтому его лучше не использовать ни при каких обстоятельствах.

Настоятельно рекомендуется отслеживать, какие порты TCP и UDP используются, чтобы обнаруживать возможные проблемы вторжений или заражения троянами

Важно исследовать любой странный трафик или порты, которые открыты, хотя этого не должно быть. Также очень важно знать, как определенная служба (прослушивающая определенный порт) ведет себя при нормальном использовании, чтобы идентифицировать необычное поведение

Наконец, в дополнение к использованию брандмауэров для закрытия всех портов, которые мы не используем, также настоятельно рекомендуется использовать IDS / IPS для обнаружения странного поведения на сетевом уровне, и было бы даже целесообразно установить IDS самостоятельно. ПК, чтобы он обнаружил любую аномалию.

Какие порты я должен особенно защищать?

  • Порт 21: используется протоколом FTP для передачи файлов.
  • Порт 22: используется протоколом SSH для удаленного управления компьютерами.
  • Порт 23: используется протоколом Telnet для удаленного управления компьютерами (небезопасно)
  • Порты 80, 8080, 8088, 8888 и 443: мы должны закрыть все веб-ориентированные порты, если у нас нет веб-сервера, и если у нас есть, мы должны контролировать его должным образом, чтобы смягчить возможные веб-атаки, такие как атаки SQL-инъекций, XSS и другие.
  • Порт 4444: этот порт обычно используется троянами и вредоносными программами в целом, рекомендуется всегда блокировать его.
  • Порты 6660-6669: эти порты используются популярным IRC, если мы их не используем, мы не будем их открывать.
  • Порт 161 UDP: он используется протоколом SNMP для просмотра конфигурации и управления различным оборудованием, таким как маршрутизаторы, коммутаторы, а также серверы. Желательно закрыть его, если вы не собираетесь им пользоваться.
  • Порт 53 UDP: порт, используемый протоколом DNS, этот порт может использоваться для эксфильтрации информации в самих запросах DNS.

Конечно, все эти порты, которые мы объяснили, являются самыми простыми, но мы всегда должны следовать политике блокировки всего, кроме тех, которые используются, таким образом мы не забудем закрыть разные порты. Если мы заблокируем все (кроме тех, которые используются и разрешены), у нас будет хорошо защищенная система, так как наличие открытого порта — это первый шаг к вторжению.

Как открыть порт в Windows 7 и Windows 8

О том, как открыть порт на роутерах различных моделей я написал уже немало статей. Но в х почти к каждой из таких инструкций я сталкиваюсь с такой ситуацией, что пользователь открывает порт на роутере, но при проверке его из-вне — оказывается что он закрыт.

 В это многие упираются и не знают что делать дальше. Одной из частых причин является система безопасности компьютера. Дело тут в том, что открыть порт на роутере часто оказывается половиной дела — нужно ещё открыть его и в правилах брандмауэра (фаервола) на компьютере.

1 практически идентична, соответственно как и процедура создания правил проброса портов.

Как попасть в настройки брандмауэра Windows

Настройка встроенного брандмауэра находится в «Панели управления», раздел «Система и безопасность».
В Windows 8 и 8.1 можно воспользоваться элементом рабочего стола — Поиск. Нужно начать вводить слово «Брандмауэр» и система выдаст ссылку в результатах.

Ещё один быстрый и удобный способ быстро попасть в настройки Брандмауэра — нажать комбинацию клавиш Win+R:

В строке открыть пишем firewall.cpl, нажимаем кнопку ОК.

Как открыть порт в брандмауэре Windows

Вам откроется раздел настройки Брандмауэра в режиме повышенной безопасности. В поле слева кликаем на раздел «Правила для входящих соединений»:

Откроется список всех правил для входящих соединений. Теперь надо создать правило. Для этого справа, в окне «Действия», кликаем на ссылку «Создать правило».
Откроется Мастер создания правила для нового входящего подключения:

Выбираем тип правила — «Для порта». Нажимаем кнопку Далее.

Теперь нужно выбрать тип протокола и указать порт. «Тип протокола» для игр, как правило, «Протокол TCP». В некоторых случаях, например для файлообменных программ или игр, нужно ещё открыть и порт UDP.

Поэтому, если нужно открыть и TCP-порт и UDP-порт в Windows — Вам придется создавать два правила.  В поле Определенные порты нужно указать номер нужного порта. Например, для Minecraft нужно открывать порт 25565 и TCP и UDP.

Нажимаем кнопку Далее.

Ставим галку «Разрешить подключение». Нажимаем кнопку Далее.

Здесь ничего не меняем. Нажимаем кнопку Далее.

В поле Имя прописываем название для создаваемого правила — например DC++ или Minecraft. Нажимаем кнопку Готово.

Правило создано и порт в брандмауэре Windows 7 и Windows 8 открыт. Проверить доступность порта из-вне можно с помощью программы PFPortChecker.

Только теперь не для порта — а «Для программы». Нажимаем кнопку Далее.

Выбираем пункт «Путь программы» и нажимаем кнопку Обзор. В открывшемся окне нужно выбрать программы, к которой нужен доступ из внешней сети — например, UTorrent, DC++ или Minecraft. Нажимаем кнопку Далее.

Ставим галочку «Разрешить подключение». Нажимаем кнопку Далее.

В этом окне ничего не меняя, нажимаем кнопку Далее.

В поле имя вводим название правила — например, dc++, utorrnet или minecraft и нажимаем кнопку Готово.

Правило для программы создано.
Если и это не помогло — можно попробовать для чистоты эксперимента вообще отключить встроенных в систему фаервол.

Как отключить Брандмауэр Windows 7, Windows 8 и Windows 8.1

Для того, чтобы отключить встроенный в систему фаервол нужно в настройках Брандмауэра выбрать пункт «Включение и отключение брандмауэра Windows»:

Вам откроется вот такое окно «Настройки параметров для каждого типа сети»:

Для всех типов сетей ставим галку «Отключить брандмауэр Windows». Нажимаем кнопку ОК. После этого брандмауэр станет неактивен и Ваша операционная система будет полностью открыта угрозам из внешней сети.

Поэтому я рекомендую отключать брандмауэр либо только кратковременно, для диагностики проблем с доступностью порта из-вне, либо если Вы переходите на другой, сторонний пакетный фильтр (фаервол).

Постоянная работа в сети Интернет с отключенным брандмауэром (фаерволом) крайне нежелательна.

Полезные приложения для отображения статуса вашего порта

В то время как командная строка является хорошим быстрым и грязным инструментом, есть более усовершенствованные сторонние приложения, которые могут помочь вам получить представление о конфигурации вашего порта. Два выделенных здесь являются просто популярными примерами.

SolarWinds требует, чтобы вы указали свое имя и данные, чтобы загрузить его, но вам решать, вносите ли вы свою реальную информацию в форму или нет. Мы опробовали несколько бесплатных инструментов, прежде чем остановиться на SolarWinds, но это был единственный инструмент, который работал правильно в Windows 10 и имел простой интерфейс.

Он также был единственным, кто не вызвал ложный положительный вирусный флаг. Одна из больших проблем программного обеспечения для сканирования портов заключается в том, что компании по обеспечению безопасности склонны рассматривать их как вредоносные программы. Поэтому большинство пользователей игнорируют любые предупреждения о вирусах, которые приходят с такими инструментами. Это проблема, потому что вы не можете определить разницу между ложным срабатыванием и настоящим вирусом в этих приложениях.

SolarWinds может поставляться с некоторыми прикрепленными строками, но на самом деле он работает так, как рекламируется, и прост в использовании.

Как вы, вероятно, можете сказать, это скорее веб-сайт, чем приложение. Это хороший первый порт захода, чтобы посмотреть, могут ли внешние данные пройти через ваш локальный порт или нет. Он автоматически определяет ваш IP-адрес, и все, что вам нужно сделать, это указать, какой порт для тестирования.

Затем он сообщит вам, заблокирован ли порт или нет, и вам нужно будет выяснить, находится ли блокировка на компьютере, маршрутизаторе или на уровне поставщика услуг.

Проброс в антивирусном ПО

Интерфейс каждого антивируса может отличаться друг от друга. Однако принцип и суть действий остаются прежними. Рассмотрим открытие порта 25565 на примере защитной программы Kaspersky:

  1. Откройте настройки программы с помощью отмеченной иконки.

  1. Перейдите во вкладку «Дополнительно» и откройте раздел «Сеть».

  1. В отмеченном пункте нажмите на «Выбрать».

  1. В открывшемся списке нажмите на кнопку «Добавить».

  1. Укажите название и впишите значение 25565, после чего сохраните изменения кнопкой «Добавить».

После этой операции рекомендуется перезагрузить компьютер. Также вы можете добавить Minecraft в список исключений, чтобы антивирус не отслеживал и не блокировал деятельность игры.

Подключение с использованием NAT.

Если ваш провайдер использует трансляцию сетевых адресов (NAT), то сравнить компьютер ни с
домом, ни с квартирой нельзя. Скорее, это один из множества кабинетов в каком-нибудь закрытом
учреждении, например, ФСБ, и в каждом из них есть свои 65536 дверей. В кабинетах работают
сотрудники, все они могут в любой момент выйти из кабинета, спуститься по лестнице, выйти из
здания и пойти по своим делам. При этом кто-либо со стороны просто не сможет попасть в здание.

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

Что такое порт?

Итак, что такое порт? Мы можем называть эти порты гнездами или розетками, но правильным термином является порт. Основная функция этих портов состоит в том, чтобы позволить одному оборудованию подключаться к другому, чтобы они могли общаться друг с другом. С технической точки зрения это порты ввода/вывода (I/O или IO). Количество портов, которые может иметь устройство, ограничено доступным физическим пространством.

Есть две группы портов — последовательный и параллельный. Группировка основана на том, как порт разрешает связь.

Последовательный порт может допускать передачу только одного бита за раз. Подумай о поезде. Только одна часть поезда может находиться на определенном участке пути одновременно. Двигатель едет до грузового вагона, грузовой вагон едет до последнего вагона. Если любые два из них находятся на одном и том же участке пути в одно и то же время, это крушение поезда или столкновение.

То же самое касается данных, проходящих через последовательный порт. Бит один и бит два не могут быть на одной и той же секции кабеля одновременно, или есть столкновение, и вещи не работают.

Параллельный порт может допускать одновременную передачу множества битов. Подумайте о многополосном шоссе. Каждого транспортного средства на шоссе немного. На любом конкретном участке шоссе рядом может находиться 5, 10, может быть, 20 автомобилей. Это значительно ускоряет общение. Если не понятно, как, то так и будет.

Допустим, мы отправляем сообщение двум людям, например, «Привет», поездом и грузовиком. Мы отправляем его одному человеку на поезде, а другому — на грузовике. Каждое приветственное письмо написано на передней части грузовика и на передней части вагона.

Человек, ожидающий поезда, серийный метод, увидит H на двигателе, затем E на следующем грузовом вагоне, затем первый L на следующем вагоне, затем второй L на следующем вагоне и O на финальная машина.

Человек, ожидающий грузовики на 5-полосной трассе, увидит, как все грузовики прибывают одновременно, бок о бок, и излагает привет.

Общие характеристики входных и выходных патрубков

Порты ввода-вывода — это порты связи, которые отвечают за передачу серии данных между двумя сторонами, все они имеют следующие характеристики:

  • Часы: Этот сигнал отмечает, как часто выполняется передача данных.
  • Данные Контакты: контакты, которые передают информацию с одной стороны на другую, есть контакты приема, отправки и полнодуплексный режим, которые позволяют данным передаваться тем или иным способом. Если на интерфейсе порта есть несколько контактов данных, мы скажем, что это параллельный порт, если их несколько, мы скажем, что это последовательный порт.

Следует уточнить, что тот факт, что порт является последовательным, вовсе не означает, что он медленнее, поскольку объем отправляемых и / или получаемых данных будет зависеть от их тактовой частоты. Интерфейсы ввода-вывода, а также остальная логика в процессорах развивались с течением времени, и то, что, например, ранее было возможно только с широкими параллельными портами, достигло точки, которая стала возможной с последовательными портами.

Проверьте порты прослушивания с помощью lsof

— это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.

В Linux все является файлом. Вы можете думать о сокете как о файле, который записывает в сеть.

Чтобы получить список всех прослушивающих TCP-портов с типом :

Используются следующие параметры:

  • — Не преобразовывать номера портов в имена портов.
  • — Не разрешать имена хостов, показывать числовые адреса.
  • — Показать только сетевые файлы с состоянием TCP LISTEN.

Большинство имен выходных столбцов говорят сами за себя:

  • , , — имя, pid и пользователь, запускающий программу, связанную с портом.
  • — номер порта.

Чтобы узнать, какой процесс прослушивает определенный порт, например порт вы должны использовать:

Выходные данные показывают, что сервер MySQL использует порт :

Получение сообщений

В конце концов, у нас осталась самая сложная задача. Нам нужно добавить событие, которое отображает входящее сообщение в TextBox. Начнем с добавления класса события в конструктор из входящих данных в COM-порт:

port.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler);

1 port.DataReceived+=newSerialDataReceivedEventHandler(DataRecievedHandler);

Теперь все, что вам нужно сделать, это добавить к этому событию функцию-обработчик. Вот где возникает трудность.

Если мы добавим в его обработку стандартные команды для добавления текста, мы получим сообщение об ошибке при передаче данных между потоками.

Это потому, что все составные части образуют отдельные потоки. Прямое изменение одним потоком компонента другого, может вызвать ошибки. Чтобы избежать этой проблемы, используйте конструкцию, называемую делегатом, и операцию вызова. Вы можете найти больше информации здесь.

Делегат скрывает в себе призыв к каким-то функциям. Чтобы использовать его, необходимо создать объявление делегата и объект типа объявленного делегата. Мы помещаем код в тело класса, рядом с объявлением переменной port. В нашем случае это будет выглядеть следующим образом:

delegate void Delegat1();
Delegat1 moj_del1;

1
2

delegate voidDelegat1();

Delegat1 moj_del1;

Таким образом, мы объявили делегата, который возвращает значение void и не требует никаких аргументов, и объект типа Delegate1 с именем my_del1. Затем в конструкторе функции следует произвести инициализацию:

moj_del1 = new Delegat1(WpiszOdebrane);

1 moj_del1=newDelegat1(WpiszOdebrane);

EnterOdebrane — это функция, которую мы собираемся создать, и перед ней будет задача добавления полученного текста в текстовое поле. Вы можете увидеть большое сходство с событиями при инициализации делегата. Если бы мы назвали нашего делегата xxxEventHandler вместо Delegate1, то не было бы никакой разницы.

События фактически являются делегатами, ранее созданными в стандартных библиотеках и стандартизированными по возвращаемым значениям и входным аргументам. Кроме того, классы, к которым относятся события, уже реализовали соответствующий код. Благодаря этому событие запускается. Теперь перейдем к созданию функции Check-In:

private void Введите debrated()
{
Добавить цвет(rtbTerminal, port.ReadByte().ToString(«X») + » «, System.Drawing.Color.Blue);
}

1
2
3
4

privatevoidВведитеdebrated()

{

Добавитьцвет(rtbTerminal,port.ReadByte().ToString(«X»)+» «,System.Drawing.Color.Blue);

}

Как видите, она ограничивается добавлением текста соответствующего цвета в терминал. Теперь нам нужно добавить вызов нашему делегату после обнаружения входящего бита:

private void DataRecievedHandler(object sender, SerialDataReceivedEventArgs e)
{
rtbTerminal.Invoke(moj_del1);
}

1
2
3
4

privatevoidDataRecievedHandler(objectsender,SerialDataReceivedEventArgse)

{

rtbTerminal.Invoke(moj_del1);

}

Вызов содержит ранее упомянутое слово Invoke. Он отвечает за безопасный вызов функции делегата, чтобы не мешать работе других потоков. После добавления этой строки у нас есть полностью функциональный терминал. Теперь просто выберите debug-> build solution в верхнем меню, найдите папку проекта на диске, войдите в каталог bin / Release и найдите там exe-файл с нашей программой.

Правильность работы программы проще всего проверить, соединив выводы Tx и Rx устройства, подключенного к порту, между собой.

Мы понимаем, что некоторое из обсуждаемого в статье покажется вам непостижимым, поэтому мы предлагаем вам скачать весь исходный код программы здесь. Кстати, рекомендуем самостоятельно изучать материалы в Интернете, если вы хотите в будущем использовать C# для других своих проектов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector