Problem with udp sock api

Hello together,

I'm trying to understand, how the UDP sock API [1] works, but the documentation /example are very bad / useless.

My questions are:

1: How can I create an UDP server which listen on a specific port and has an unique IPv6 addr ?? The example [1] isn't very helpful. I don't understand why some variables like "local" [2] are defined. The documentation does not help. The documentation says "Common IP-based transport layer end point." for the struct sock_udp_ep_t. But why do I need this?? I want to receive and send udp packages to other boards. Why is this so difficult to implement ??

2: How can I send an udp package with the following parameters given: - message - portnumber - dst ipv6 addr

The documentation / example does not help here either.

3: How can I get the unique Ipv6 addr from my device (samr21-xpro). I want to call "getIPv6()" and want the Ipv6 addr which this device has.

[1] https://doc.riot-os.org/group__net__sock__udp.html [2] sock_udp_ep_t local = SOCK_IPV6_EP_ANY;

Hi,

That’s a little bit harsh when you consider that there is a full working example in the link you provided. But feel free to send improvements and actual criticism i guess.

Wow, I wouldn’t say bad. There is a complete POSIX sockets example in the source code: https://github.com/RIOT-OS/RIOT/tree/master/examples/posix_sockets RIOT OS support the POSIX socket API. There are tons of examples in the Internet for POSIX sockets. But if you want to have a more complete code an guide.

  1. Server on the sensor. UDP + Protobuf: https://github.com/Citrullin/RIOT/tree/ble_sensor_node/examples/env_sensor_network
  2. Complete guide for this sensor server and the host application. (BLE, nrf52): https://github.com/Citrullin/documentation/blob/env_sensor_network/blueprints/0.1/environment-sensor/run-a-environment-sensor-and-client.md