]> git.meshlink.io Git - meshlink/blob - examples/meshlinkapp.c
Update meshlinkapp.c.
[meshlink] / examples / meshlinkapp.c
1 #include "../src/system.h"
2 #include "../src/meshlink.h"
3
4 void handle_recv_data(meshlink_handle_t *mesh, meshlink_node_t *source, void *data, size_t len) {
5         printf("Received %zu bytes from %s: %s\n", len, source->name, data);
6 }
7
8 int main(int argc , char **argv){
9         char *confbase = argc > 1 ? argv[1] : "/tmp/meshlink/";
10         char *name = argc > 2 ? argv[2] : "foo";
11
12         char *remotename = argc > 3 ? argv[3] : "bar";
13
14         meshlink_handle_t* myhandle;
15
16         myhandle = meshlink_open(confbase, name);
17
18         //Register callback function for incoming data
19         meshlink_set_receive_cb(myhandle, handle_recv_data);
20
21         meshlink_start(myhandle);
22
23         while(1) {
24                 sleep(10);
25
26                 meshlink_node_t *remotenode = meshlink_get_node(myhandle, remotename);
27                 if(!remotenode) {
28                         fprintf(stderr, "Node %s not known yet.\n", remotenode);
29                         continue;
30                 }
31
32                 //sample data to send out
33                 char mydata[200];
34                 memset(mydata,0,200);
35                 strcpy(mydata,"Hello World!");
36
37                 //send out data
38                 meshlink_send(myhandle,remotenode,mydata,sizeof(mydata));
39         }
40
41         meshlink_stop(myhandle);
42         meshlink_close(myhandle);
43
44         return 0;
45 }
46