From 64e1e15b6e47231b6a2b44b57be2b6ee4a9865a4 Mon Sep 17 00:00:00 2001 From: lapupe Date: Fri, 16 Sep 2016 00:09:04 +0200 Subject: [PATCH] first steps for the development of remote: connection on TCP done --- remote/Makefile | 28 ++++++++++++++++++ remote/tcpdclient.c | 37 ++++++++++++++++++++++++ remote/tcpdserver | Bin 0 -> 11392 bytes remote/tcpdserver.c | 67 ++++++++++++++++++++++++++++++++++++++++++++ remote/tcpdserver.h | 9 ++++++ 5 files changed, 141 insertions(+) create mode 100644 remote/Makefile create mode 100644 remote/tcpdclient.c create mode 100755 remote/tcpdserver create mode 100644 remote/tcpdserver.c create mode 100644 remote/tcpdserver.h diff --git a/remote/Makefile b/remote/Makefile new file mode 100644 index 0000000..a873a06 --- /dev/null +++ b/remote/Makefile @@ -0,0 +1,28 @@ +CC=gcc +CFLAGS=-Wall -g +LDFLAGS= -pthread +CFILES=$(wildcard *.c) # CFILES => recompiles everything on a C file change +EXEC=$(basename $(wildcard *.c)) +SOURCES=$(wildcard ../lib/*.c) +OBJECTS=$(SOURCES:.c=.o) +TESTS=$(addsuffix .test, $(EXEC)) + +all: tcpdserver tcpdclient + +$(EXEC): $(OBJECTS) $(CFILES) + $(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) $@.c -o $@ + +tcpdserver: tcpdserver.c tcpdserver.h + $(CC) $(CFLAGS) $@.c -o $@ + +tcpdclient: tcpdclient.c tcpdserver.h + $(CC) $(CFLAGS) $@.c -o $@ + +.c.o: + $(CC) -c $(CFLAGS) $< -o $@ + +clean: + -rm $(OBJECTS) + +mrproper: clean + rm $(EXEC) diff --git a/remote/tcpdclient.c b/remote/tcpdclient.c new file mode 100644 index 0000000..8187a67 --- /dev/null +++ b/remote/tcpdclient.c @@ -0,0 +1,37 @@ +#include "tcpdserver.h" +#include +#include +#include +#include +#include +#include +#include +#include + + +#define PORT 6000 + + +int main(int argc, char ** argv) { + int sock = socket(AF_INET, SOCK_STREAM, 0); + if(sock == -1) + { + perror("socket()"); + exit(errno); + } + + struct sockaddr_in sin = {0}; + sin.sin_addr.s_addr = inet_addr("127.0.0.1"); + sin.sin_port = htons(PORT); /* on utilise htons pour le port */ + sin.sin_family = AF_INET; + + if(connect(sock,(struct sockaddr *) &sin, sizeof(struct sockaddr)) == -1) + { + perror("connect()"); + exit(errno); + } + + close(sock); + + return 0; +} \ No newline at end of file diff --git a/remote/tcpdserver b/remote/tcpdserver new file mode 100755 index 0000000000000000000000000000000000000000..4ad916a261be637dc82f56f246f536d1069c226c GIT binary patch literal 11392 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 c0=f!6o)7$8p!Zv){tpIGfwJ0B>2OEb%7 literal 0 HcmV?d00001 diff --git a/remote/tcpdserver.c b/remote/tcpdserver.c new file mode 100644 index 0000000..87caf7d --- /dev/null +++ b/remote/tcpdserver.c @@ -0,0 +1,67 @@ +#include "tcpdserver.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#define PORT 6000 + +int init_connection(void) +{ + int sock = socket(AF_INET, SOCK_STREAM, 0); + struct sockaddr_in sin = { 0 }; + + if(sock == -1) + { + perror("socket()"); + exit(errno); + } + + sin.sin_addr.s_addr = htonl(INADDR_ANY); + sin.sin_port = htons(PORT); + sin.sin_family = AF_INET; + + if(bind(sock,(struct sockaddr *) &sin, sizeof sin) == -1) + { + perror("bind()"); + exit(errno); + } + + if(listen(sock, 5) == -1) + { + perror("listen()"); + exit(errno); + } + + return sock; +} + + +// void printClientAddr(struct sockaddr_in &csin) { +// printf("%s\n", ); +// } + + +int main(int argc, char * argv[], char **env) { + + int sock = init_connection(); + + struct sockaddr_in csin = { 0 }; + socklen_t sinsize = sizeof csin; + int csock = accept(sock, (struct sockaddr *)&csin, &sinsize); + if(csock == -1) + { + perror("accept()"); + exit(errno); + } + + printf("new client\n"); + + close(sock); + close(csock); + return 0; +} \ No newline at end of file diff --git a/remote/tcpdserver.h b/remote/tcpdserver.h new file mode 100644 index 0000000..d5d4b92 --- /dev/null +++ b/remote/tcpdserver.h @@ -0,0 +1,9 @@ +#ifndef __TCPDSERVER_H__ +#define __TCPDSERVER_H__ + + +int initConnection (); +void endConnection (int sock, int csock); + + +#endif \ No newline at end of file