]> git.lizzy.rs Git - dragonnet-example.git/commitdiff
Add example code
authorHimbeerserverDE <himbeerserverde@gmail.com>
Mon, 4 Oct 2021 15:25:21 +0000 (17:25 +0200)
committerHimbeerserverDE <himbeerserverde@gmail.com>
Mon, 4 Oct 2021 15:25:21 +0000 (17:25 +0200)
CMakeLists.txt
ExampleCS [new file with mode: 0755]
client.c [deleted file]
cs_example.c [new file with mode: 0644]
server.c [deleted file]

index e307f88a0151bdb25c7c66da4ffadedf18bb99a4..24ca19cd5d21e1a844c0e48343fa36077f637fcf 100644 (file)
@@ -46,16 +46,9 @@ add_custom_target(ExampleTypes
        DEPENDS "${CMAKE_SOURCE_DIR}/dnet-types.h"
 )
 
-add_executable(ExampleClient
+add_executable(ExampleCS
        ${SOURCES_COMMON}
-       client.c
+       cs_example.c
 )
 
-add_dependencies(ExampleClient ExampleTypes)
-
-add_executable(ExampleServer
-       ${SOURCES_COMMON}
-       server.c
-)
-
-add_dependencies(ExampleServer ExampleTypes)
+add_dependencies(ExampleCS ExampleTypes)
diff --git a/ExampleCS b/ExampleCS
new file mode 100755 (executable)
index 0000000..b3ff871
Binary files /dev/null and b/ExampleCS differ
diff --git a/client.c b/client.c
deleted file mode 100644 (file)
index 3b79c62..0000000
--- a/client.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <stdio.h>
-#include "dnet-types.h"
-
-int main()
-{
-       printf("hello, client\n");
-}
diff --git a/cs_example.c b/cs_example.c
new file mode 100644 (file)
index 0000000..c6ccd9d
--- /dev/null
@@ -0,0 +1,49 @@
+#include <assert.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "deps/dragonnet/listen.h"
+
+static DragonnetListener *l;
+
+static void connect_func(DragonnetPeer *p)
+{
+       char *str_addr = dragonnet_addr_str(p->raddr);
+       printf("new connection from %s\n", str_addr);
+       free(str_addr);
+
+       dragonnet_listener_close(l);
+       dragonnet_listener_delete(l);
+       l = NULL;
+}
+
+static void *srv_func()
+{
+       l = dragonnet_listener_new("[::1]:50000", &connect_func);
+       assert(l != NULL);
+
+       dragonnet_listener_run(l);
+       return NULL;
+}
+
+static void *clt_func()
+{
+       DragonnetPeer *p = dragonnet_connect("[::1]:50000");
+       assert(p != NULL);
+
+       dragonnet_peer_run(p);
+       dragonnet_peer_close(p);
+       dragonnet_peer_delete(p);
+       return NULL;
+}
+
+int main()
+{
+       pthread_t srv_thread, clt_thread;
+       pthread_create(&srv_thread, NULL, &srv_func, NULL);
+       pthread_create(&clt_thread, NULL, &clt_func, NULL);
+
+       pthread_join(clt_thread, NULL);
+       pthread_join(srv_thread, NULL);
+}
diff --git a/server.c b/server.c
deleted file mode 100644 (file)
index 992f779..0000000
--- a/server.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <stdio.h>
-#include "dnet-types.h"
-
-int main()
-{
-       printf("hello, server\n");
-}