Посмотреть исходный код на GitHub
OpenThread предлагает команды TCP для использования в сети потоков для проверки одноранговой связи между конечными точками TCP. cli tcp предоставляет один пример конечной точки TCP и один образец прослушивателя TCP, с которым взаимодействуют все команды tcp .
Обзоры команд и следующий пример предоставляют информацию об инициализации примера конечной точки TCP и прослушивателя TCP, о том, как подключиться к конечной точке TCP однорангового узла и как отправить сообщение одноранговому узлу.
TCP-команды
Чтобы получить список команд tcp , введите help :
tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
команда init
Используйте команду tcp init , чтобы инициализировать модуль TCP и начать TCP-связь. Затем модуль TCP может выполнять множество функций, например прослушивать входящие соединения с помощью примера прослушивателя TCP, предоставляемого tcp CLI. Чтобы деинициализировать пример прослушивателя TCP и пример конечной точки TCP, введите команду tcp deinit .
команда bind
Чтобы привязать пример конечной точки TCP после инициализации модуля TCP, запустите команду tcp bind , чтобы назначить адрес IPv6 и порт конечной точке TCP. Это связывает конечную точку для связи. Назначение адреса и порта IPv6 также называется «присвоением имени конечной точке».
команда listen
Чтобы использовать пример прослушивателя TCP после инициализации модуля TCP, запустите команду tcp listen и укажите адрес IPv6 и порт прослушивания.
Чтобы остановить прослушивание входящих TCP-соединений примером прослушивателя TCP, введите команду tcp stoplistening .
команда connect
Команда tcp connect подключает пример конечной точки TCP к адресу конечной точки TCP однорангового узла.
send команду
Как только соединение между двумя узлами будет установлено, введите команду tcp send , чтобы отправить сообщение одноранговому узлу.
команды benchmark
После установки TCP-соединения между двумя узлами можно дополнительно использовать команды benchmark для отправки больших объемов данных между узлами для проверки пропускной способности и производительности сети. Количество переданных байтов в миллисекундах, а также TCP Goodput будут указаны в результатах benchmark .
команда abort
Чтобы немедленно и бесцеремонно завершить TCP-соединение, запустите команду tcp abort на любом узле, чтобы перевести конечную точку TCP в закрытое состояние.
команда sendend
Когда один узел завершает отправку данных на другой узел, первый узел может выдать команду tcp sendend , чтобы предупредить второй узел о том, что он больше не ожидает данных. Второй узел также может отправить tcp sendend первому узлу. Как только каждый узел получает сообщение TCP: Disconnected , TCP-соединение между двумя узлами разрывается. Рекомендуется, но не обязательно, подавать эту команду после завершения передачи данных.
Отправить сообщение между двумя узлами
На узле 1 инициализируйте модуль TCP CLI, затем прослушивайте входящие соединения, используя пример прослушивателя TCP.
tcp inittcp listen :: 30000Использование
::означает, чтоlistenдолжно использовать неуказанный адрес IPv6, тем самым заставляя стек TCP/IPv6 назначить адрес IPv6. Порт 30000.На узле 2 инициализируйте модуль TCP CLI, подключитесь к узлу 1, а затем отправьте простое сообщение.
tcp inittcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000tcp send hello
Проверка
На основе примеров шагов, показанных выше, можно ожидать следующий результат:
- После того, как узел 2 выполнит команду
tcp connect, узел 2 должен получить сообщениеTCP: Connection established. - Затем узел 1 должен получить сообщения (с примером IPv6-адреса и порта):
-
Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152 -
TCP: Connection established
-
- После того, как узел 2 выполнит команду
tcp send, узел 1 должен получить сообщениеTCP: Received 5 bytes: hello