changeset 45:ac8626c7859c

[Gara] Re-writing basic logic in C and hoping that I can import that into Java.
author MrJuneJune <me@mrjunejune.com>
date Wed, 03 Dec 2025 20:51:50 -0800
parents 0cfd7d9277b0
children b9a40c633c93
files gara/BUILD gara/main.c
diffstat 2 files changed, 51 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gara/BUILD	Wed Dec 03 20:51:50 2025 -0800
@@ -0,0 +1,9 @@
+load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
+
+cc_binary(
+  name = "gara_c",
+  srcs = ["main.c"],
+  deps = ["//seobeo:seobeo"],
+)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gara/main.c	Wed Dec 03 20:51:50 2025 -0800
@@ -0,0 +1,42 @@
+#include "seobeo/seobeo.h"
+#include "stdio.h"
+
+void HandleClientRequest(Seobeo_PHandle p_cli_handle) {
+  char *hello = "Hello good sir";
+  Seobeo_Handle_Queue(p_cli_handle, (uint8_t*)hello, 14);
+  Seobeo_Handle_Flush(p_cli_handle);
+
+  while (1)
+  {
+    int n = Seobeo_Handle_Read(p_cli_handle);
+    if (n > 0) 
+    {
+      printf(p_cli_handle->read_buffer);
+      Seobeo_Handle_Consume(p_cli_handle, n);
+    }
+  }
+}
+
+int main()
+{
+
+  printf("Server initializing\n");
+  const char *PORT = "3322";
+  Seobeo_PHandle server = Seobeo_Stream_Handle_Server_Create(NULL,  PORT);
+
+  printf("Server running\n");
+  while (1)
+  {
+    Seobeo_PHandle p_cli_handle =
+      Seobeo_Stream_Handle_Server_Accept(server);
+    if (!p_cli_handle) continue;
+
+    if (fork() == 0)
+    {
+      HandleClientRequest(p_cli_handle);
+      _exit(0);
+    }
+  }
+
+  return 0;
+}