From cc842111ff8942eb5b7cc0aad9d267fa1d6b7557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hatvani=20Tam=C3=A1s?= Date: Mon, 9 Feb 2026 19:33:21 +0100 Subject: [PATCH] server1 --- .../clangd/index/main.c.2CEDD008559E27BF.idx | Bin 0 -> 628 bytes .../index/sockets.h.75AABA95DBE9AAA6.idx | Bin 0 -> 768 bytes server1/.clangd | 4 + server1/Makefile | 69 ++++++++++++++++++ server1/compile_commands.json | 21 ++++++ server1/src/main.c | 56 ++++++++++++++ 6 files changed, 150 insertions(+) create mode 100644 server1/.cache/clangd/index/main.c.2CEDD008559E27BF.idx create mode 100644 server1/.cache/clangd/index/sockets.h.75AABA95DBE9AAA6.idx create mode 100644 server1/.clangd create mode 100644 server1/Makefile create mode 100644 server1/compile_commands.json create mode 100644 server1/src/main.c diff --git a/server1/.cache/clangd/index/main.c.2CEDD008559E27BF.idx b/server1/.cache/clangd/index/main.c.2CEDD008559E27BF.idx new file mode 100644 index 0000000000000000000000000000000000000000..c00747310dd1316e647b1d2eb475df70b6a6e9c5 GIT binary patch literal 628 zcmWIYbaTsLVqkDi@vO*AElFfyU|r#l@5(QX&xlN0d(F50mUotiQ26>IPmjF4ufSuN$1>gS1NYmtU5O0E zmAOgsK>z&>e^vc(DSsOegD3-o02>P%2bciLKtNGyTJbX=^V{`<9AzgbvNFmDa0qco zz_cy;@t9NGor{x^M?ipEKo}-`;VEzY;aL+w!u;I)Vld$=d)fUT+g}m`3Uf$uC_t@X z2yC9lBPEsQ1`<}{(1i)FJj=H-C1z0tR2XImjAoQVajC4yw{s@TR<8m&P(W5d4W?>u z^VhApuJ6wR4G|C#kb((Y2^^Zcb!PcLplWUoZa$cBQEE;i$ok@<MOIQ1nqD&9~Rp{iHr9yu16-B4hsNojdR3{@$@y>S3OWD0A(M6AF(G zOboDmG&RjDggKMm{{3ag}?-ZBm)CbGsAL?JK?Jq1}pP1Z~}F+aj}Vj37GCv ztRlasZ(85M#=s2J&A`sU2PPOe!DchKCv7%Ozw~4g9|Jo-0~4<>uMC)g=?=+Ckm;Y6 zxR{TD4JggW$tM6NVA2Mz@|{JmOE>W`Z~^UR7iO0R6EJBlm6PD zf(e-P-sZ1cb6wv9rCC`Rm>7i^CBOtsdVhHThfjqI-?1_90bS0+&LadSU@k98O)LHa z^aL#Q7`ecq1`9114HO0i8N|1U&;kmBf(oVz7D`N9kkElD=V9XD<`9C}01GRiUQj^6 z+y@IIpfD(aV8XDl0Sbcx24)j1On}0m0D%d^!U8A^3J92cV1@yOK>+~sMNw)_B8XjF Wlw8aWq?wqiuO`*ou!y8EFaQ8wYt@(l literal 0 HcmV?d00001 diff --git a/server1/.clangd b/server1/.clangd new file mode 100644 index 0000000..a634458 --- /dev/null +++ b/server1/.clangd @@ -0,0 +1,4 @@ +CompileFlags: + Add: + - -Isrc + - -std=c11 diff --git a/server1/Makefile b/server1/Makefile new file mode 100644 index 0000000..83eec9f --- /dev/null +++ b/server1/Makefile @@ -0,0 +1,69 @@ +APPNAME = networkc +SRCDIR = src +BUILDDIR = build +VENDORDIR = vendor + +target ?= linux +profile ?= debug +valgrind ?= false + +ifeq ($(target), windows) + CC = x86_64-w64-mingw32-gcc + EXT = .exe + + OPT_FLAGS = -O2 -DNDEBUG + + INCLUDES = -I$(SRCDIR) + LIBS = + + # Command to copy DLL after build + POST_BUILD_CMD = #@cp .. $(BUILDDIR); @echo "Build complete." + +else + CC = gcc + EXT = + + INCLUDES = -I$(SRCDIR) + LIBS = + POST_BUILD_CMD = @echo "Build complete." + + # Profile Logic + ifeq ($(profile), release) + OPT_FLAGS = -O3 -DNDEBUG -march=native + else + OPT_FLAGS = -O0 -g -DDEBUG -Wall -Wextra + endif +endif + +# Combine Flags +CFLAGS = -Wall $(OPT_FLAGS) $(INCLUDES) + +SRC = $(shell find $(SRCDIR) -name "*.c") +OBJ = $(SRC:$(SRCDIR)/%.c=$(BUILDDIR)/%.o) + +all: $(BUILDDIR)/$(APPNAME)$(EXT) + +$(BUILDDIR)/$(APPNAME)$(EXT): $(OBJ) + @echo "Linking $@ (Target: $(target), Profile: $(profile))" + @mkdir -p $(dir $@) + $(CC) $(OBJ) -o $@ $(LIBS) + $(POST_BUILD_CMD) + +$(BUILDDIR)/%.o: $(SRCDIR)/%.c + @echo "Compiling $<" + @mkdir -p $(dir $@) + $(CC) $(CFLAGS) -c $< -o $@ + +clean: + rm -rf $(BUILDDIR) + +ifeq ($(valgrind), true) + RUN_CMD = valgrind --leak-check=full ./$(BUILDDIR)/$(APPNAME)$(EXT) +else + RUN_CMD = ./$(BUILDDIR)/$(APPNAME)$(EXT) +endif + +run: all + $(RUN_CMD) + +.PHONY: all clean run diff --git a/server1/compile_commands.json b/server1/compile_commands.json new file mode 100644 index 0000000..34c83bd --- /dev/null +++ b/server1/compile_commands.json @@ -0,0 +1,21 @@ +[ + { + "file": "src/main.c", + "arguments": [ + "gcc", + "-Wall", + "-O0", + "-g", + "-DDEBUG", + "-Wall", + "-Wextra", + "-Isrc", + "-c", + "src/main.c", + "-o", + "build/main.o" + ], + "directory": "/home/tom/Dev/networkc", + "output": "build/main.o" + } +] \ No newline at end of file diff --git a/server1/src/main.c b/server1/src/main.c new file mode 100644 index 0000000..7d9e5e5 --- /dev/null +++ b/server1/src/main.c @@ -0,0 +1,56 @@ +#include +#include +#include +#include +#include +#include + +int main() { + int socket_desc = socket(AF_INET, SOCK_STREAM, 0); + + if (socket_desc == -1) { + printf("Could not create a socket!"); + return 1; + } + + struct sockaddr_in server; + server.sin_addr.s_addr = INADDR_ANY; + server.sin_family = AF_INET; + server.sin_port = htons(8888); + + // connect to remote server + if (bind(socket_desc, (struct sockaddr *)&server, sizeof(server)) < 0) { + puts("bind error\n"); + return 1; + } + + puts("bind done\n"); + + // listen for connections + listen(socket_desc, 3); + + // accept incoming connections + puts("waiting for connections..."); + int c = sizeof(struct sockaddr_in); + struct sockaddr_in client; + int new_socket; + while (new_socket = accept(socket_desc, (struct sockaddr *)&client, (socklen_t *)&c)) { + puts("connection accepted\n"); + + char *client_ip = inet_ntoa(client.sin_addr); + int client_port = ntohs(client.sin_port); + printf("client address: %s:%d\n", client_ip, client_port); + + char *message = "Hello Client\n"; + write(new_socket, message, strlen(message)); + } + + if (new_socket < 0) { + perror("accept failed\n"); + return 1; + } + + close(socket_desc); + + return 0; +}