mirror of
https://github.com/obgm/libcoap.git
synced 2026-11-03 00:15:49 +03:00
Simplify code for applications by providing coap_uri_into_options() which then adds the (optional) port and splits out the path / query as CoAP options, adding them to the optlist_chain for subsequent use. Added a new coap_delete_uri() for completeness. Update documentation to include the uri based functions. Update examples to use the new coap_uri_into_options() function.
Example of libcoap running on lwIP
==================================
To run the server example, do
$ make
$ sudo ./server
(and in a second terminal)
$ sudo ip a a dev tap0 192.168.113.1/24
and query `coap://192.168.113.2/time?ticks` with any coap tool,
or query `coap://192.168.113.2/.well-known/core`
This will
* download lwip and lwip-contrib from the upstream git sources
* build the server application
* run the server application, creating a virtual network device tap0 (unless
that exists)
* configure your network interface to make the server accessible.
* return the appropriate response from the server to the client.
The server supports the "-v level" option where logging "level" can be 0 to 7.
The server creates a resource for 'time' with a query 'ticks'. This is
reported for `.well-known/core`. The work flow for adding more resources does
not differ from regular libcoap usage. If you seem to run out of memory
creating the resources, tweak the number of pre-allocated resources
in `config/lwippools.h`.
To run the client example
$ make
$ sudo ./client
As this tries to connect to coap://libcoap.net/, the tap0 interface will need IP
forwarding enabled
$ sudo sysctl -w net.ipv4.conf.default.forwarding=1
As well as the interface connecting to the internet will need a NAT rule to
masquerade the internal IP address (192.168.114.2) to the IP of the outgoing
interface (where eth0 is replaced by your public facing interface name)
$ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
The client supports the "-v level" option where logging "level" can be 0 to 7.
The client supports an optional parameter which is the CoAP URI to connect to
.e.g "coap://libcoap.net/.well-known/core". The default
is "coap://libcoap.net/".