OpenThread는 UDP 소켓 간의 P2P 통신을 테스트하기 위해 스레드 네트워크와 함께 사용할 UDP 명령어를 제공합니다. cli udp
는 모든 udp
명령어가 상호작용하는 샘플 소켓을 제공합니다.
다음 예는 소켓을 열고 바인딩하는 방법, 소켓을 연결하는 방법, UDP 소켓을 사용하여 메시지를 보내는 방법을 보여줍니다.
UDP 명령어
udp
명령어 목록을 보려면 help
를 입력합니다.
udp help
bind
close
connect
linksecurity
open
send
Done
open
명령어
udp open
명령어를 사용하여 소켓을 열어 UDP 통신을 시작합니다.
그런 다음 소켓을 특정 IP 주소와 포트에 바인딩할 수 있습니다.
bind
명령어
소켓을 open
한 후 udp bind
명령어를 실행하여 IPv6 주소와 포트를 개방형 소켓에 할당할 수 있습니다. 이렇게 하면 통신을 위해 소켓이 바인딩됩니다. IPv6 주소와 포트를 할당하는 것을 소켓 이름 지정이라고도 합니다. 소켓을 직접 bind
하지 않는 경우 소켓 (udp connect
)을 연결하거나 udp send
명령어에 사용하면 소켓이 임시 포트에 바인딩됩니다.
connect
명령어
udp connect
명령어를 사용하여 예시 소켓을 피어 소켓 주소에 연결할 수 있습니다.
그런 다음 udp send
명령어를 실행하여 피어에 메시지를 보낼 수 있습니다. 소켓이 아직 바인딩되지 않은 경우 udp connect
명령어를 실행하면 소켓이 바인딩됩니다.
send
명령어
udp send
명령어는 예시 소켓을 사용하여 명령어 변수로 IP 주소와 UDP 포트를 지정할 수 있는 대상으로 메시지를 보냅니다.
udp send
명령어에 IP 주소와 포트가 지정되지 않으면 메시지가 예시 소켓을 사용하여 udp connect
명령어에 지정된 대상으로 전송됩니다.
소켓이 아직 바인딩되지 않은 경우 udp send
명령어를 실행하면 소켓이 임시 포트에 바인딩됩니다.
close
명령어
소켓이 더 이상 필요하지 않으면 udp close
명령어를 사용하여 소켓을 닫는 것이 좋습니다.
linksecurity
명령어
udp linksecurity
명령어를 사용하여 메시지의 데이터 링크 레이어 보안을 사용 설정 또는 중지할 수 있습니다.
두 노드 간 메시지 전송
노드 1에서 UDP 소켓을 엽니다.
udp open
Done노드 1에서 소켓을 바인딩합니다.
udp bind :: 1234
Done::
를 사용한다는 것은bind
가 지정되지 않은 IPv6 주소를 사용해야 하므로 UDP/IPv6 스택이 결합 IPv6 주소를 할당하도록 하는 것입니다. 네트워크 인터페이스에 바인딩과 같이udp bind
가 포함된 완전한 옵션은 udp bind를 참조하세요.
1 노드 2에서 UDP 소켓을 엽니다.
udp open
Done
노드 2에서 노드 1에 간단한 메시지를 보냅니다.
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
Done이 명령어는 노드 2가 이미 노드 1의 주소를 발견했다고 가정합니다. 또한 이 예시에서는 노드 2의 관리자가 소켓을 바인딩하지 않도록 선택했습니다. 이는 노드 2 관리자가 노드 2의 소스로 사용되는 IP 주소와 포트를 고려하지 않고 노드 1에 메시지를 보내기를 원하기 때문입니다. 이 시나리오에서 소켓은 IP 주소와 포트를 무작위로 선택합니다.
udp send
의 전체 옵션은 udp send를 참조하세요.노드 1은 노드 2의 메시지 수신을 확인합니다.
5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
소켓을 피어 소켓 주소에 연결한 다음 두 노드 간에 메시지 전송
이 예는 이전 예와 유사하지만 UDP 소켓을 사용할 때 얻을 수 있는 유연성을 보여줍니다. 이 방법을 사용하면 먼저 소켓을 피어 소켓 주소에 연결하면 udp send
을 수행할 때마다 피어 IP 주소와 포트를 지정할 필요가 없습니다.
노드 1에서 UDP 소켓을 엽니다.
udp open
Done노드 1에서 소켓을 바인딩합니다.
udp bind :: 1234
Done노드 2에서 UDP 소켓을 엽니다.
udp open
Done노드 2에서
udp connect
명령어를 사용하여 노드 1과의 통신을 엽니다.udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
Doneudp connect
의 전체 옵션은 UDP 연결을 참조하세요.노드 2에서
udp send
명령어를 사용하여 노드 1에 메시지를 보내지만udp send
명령어 구문에ip
및port
를 지정하지 않습니다.udp send hello
Doneip
와port
를 지정하지 않으면udp send
명령어는udp connect
명령어에 지정된ip
와port
를 사용합니다.