otError Udp::Start(void) { otError error; otSockAddr sockaddr; memset(&sockaddr, 0, sizeof(otSockAddr)); sockaddr.mPort = 7335; SuccessOrExit(error = otUdpOpen(mInstance, &mSocket, &Udp::HandleUdpReceive, this)); SuccessOrExit(error = otUdpBind(&mSocket, &sockaddr)); exit: return error; }
otError Udp::ProcessBind(int argc, char *argv[]) { otError error; otSockAddr sockaddr; long value; VerifyOrExit(argc == 2, error = OT_ERROR_PARSE); memset(&sockaddr, 0, sizeof(sockaddr)); error = otIp6AddressFromString(argv[0], &sockaddr.mAddress); SuccessOrExit(error); error = Interpreter::ParseLong(argv[1], value); SuccessOrExit(error); sockaddr.mPort = static_cast<uint16_t>(value); error = otUdpBind(&mSocket, &sockaddr); exit: return error; }
otError UdpExample::ProcessBind(int argc, char *argv[]) { otError error; otSockAddr sockaddr; long value; VerifyOrExit(argc == 2, error = OT_ERROR_INVALID_ARGS); memset(&sockaddr, 0, sizeof(sockaddr)); error = otIp6AddressFromString(argv[0], &sockaddr.mAddress); SuccessOrExit(error); error = Interpreter::ParseLong(argv[1], value); SuccessOrExit(error); sockaddr.mPort = static_cast<uint16_t>(value); sockaddr.mScopeId = OT_NETIF_INTERFACE_ID_THREAD; error = otUdpBind(&mSocket, &sockaddr); exit: return error; }