From d1c0a6b0f13bbf7c0cda014245bad3537f500370 Mon Sep 17 00:00:00 2001 From: Hizenberg469 Date: Wed, 15 Nov 2023 00:01:36 +0530 Subject: [PATCH] Simple Hello Server/Client program --- Server-Client Program/Client/Client.cbp | 38 ++++++++ Server-Client Program/Client/Client.cpp | 52 +++++++++++ Server-Client Program/Client/Client.depend | 12 +++ Server-Client Program/Client/bin/Debug/Client | Bin 0 -> 23504 bytes Server-Client Program/Client/client | Bin 0 -> 24208 bytes .../Client/obj/Debug/Client.o | Bin 0 -> 15120 bytes Server-Client Program/Server/Server.cbp | 38 ++++++++ Server-Client Program/Server/Server.cpp | 86 ++++++++++++++++++ Server-Client Program/Server/bin/Debug/Server | Bin 0 -> 24080 bytes .../Server/obj/Debug/Server.o | Bin 0 -> 16344 bytes Server-Client Program/Server/server | Bin 0 -> 25376 bytes Server-Client Program/Tut-Sheet-1.txt | 36 ++++++++ Server-Client Program/Tut-Sheet-2.txt | 33 +++++++ Server-Client Program/default.workspace | 7 ++ .../default.workspace.layout | 6 ++ 15 files changed, 308 insertions(+) create mode 100644 Server-Client Program/Client/Client.cbp create mode 100644 Server-Client Program/Client/Client.cpp create mode 100644 Server-Client Program/Client/Client.depend create mode 100755 Server-Client Program/Client/bin/Debug/Client create mode 100755 Server-Client Program/Client/client create mode 100644 Server-Client Program/Client/obj/Debug/Client.o create mode 100644 Server-Client Program/Server/Server.cbp create mode 100644 Server-Client Program/Server/Server.cpp create mode 100755 Server-Client Program/Server/bin/Debug/Server create mode 100644 Server-Client Program/Server/obj/Debug/Server.o create mode 100755 Server-Client Program/Server/server create mode 100644 Server-Client Program/Tut-Sheet-1.txt create mode 100644 Server-Client Program/Tut-Sheet-2.txt create mode 100644 Server-Client Program/default.workspace create mode 100644 Server-Client Program/default.workspace.layout diff --git a/Server-Client Program/Client/Client.cbp b/Server-Client Program/Client/Client.cbp new file mode 100644 index 0000000..7e6edbc --- /dev/null +++ b/Server-Client Program/Client/Client.cbp @@ -0,0 +1,38 @@ + + + + + + diff --git a/Server-Client Program/Client/Client.cpp b/Server-Client Program/Client/Client.cpp new file mode 100644 index 0000000..2baa6f0 --- /dev/null +++ b/Server-Client Program/Client/Client.cpp @@ -0,0 +1,52 @@ +//Client side program in C/C++ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +using namespace std; +static void msg( const char* msg){ + fprintf(stderr, "%s\n", msg); +} + +static void die(const char* msg){ + int err = errno; + fprintf(stderr, "[%d] %s\n", err,msg); + abort(); +} + +int main(){ + + int fd = socket(AF_INET, SOCK_STREAM, 0); + if( fd < 0 ){ + die("socket()"); + } + + struct sockaddr_in addr = {}; + addr.sin_family = AF_INET; + addr.sin_port = ntohs(1234); + addr.sin_addr.s_addr = ntohl(INADDR_LOOPBACK);// 127.0.0.1 + int rv = connect(fd, (const struct sockaddr*)&addr, sizeof(addr)); + if( rv ){ + die("connect"); + } + + char msg[] = "hello"; + write(fd, msg, strlen(msg)); + + char rbuf[64] = {}; + ssize_t n = read(fd, rbuf , sizeof(rbuf) - 1); + if( n < 0 ){ + die("read"); + } + printf("server says: %s\n", rbuf); + close(fd); + return 0; +} diff --git a/Server-Client Program/Client/Client.depend b/Server-Client Program/Client/Client.depend new file mode 100644 index 0000000..d3f1abd --- /dev/null +++ b/Server-Client Program/Client/Client.depend @@ -0,0 +1,12 @@ +# depslib dependency file v1.0 +1699986008 source:/home/hizenberg/Desktop/My Own Redis/Server-Client Program/Client/Client.cpp + + + + + + + + + + diff --git a/Server-Client Program/Client/bin/Debug/Client b/Server-Client Program/Client/bin/Debug/Client new file mode 100755 index 0000000000000000000000000000000000000000..2c168330d19a727a7d2f22e4d9cab9f32731c497 GIT binary patch literal 23504 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 hl)m<{ + + + + + diff --git a/Server-Client Program/Server/Server.cpp b/Server-Client Program/Server/Server.cpp new file mode 100644 index 0000000..022506a --- /dev/null +++ b/Server-Client Program/Server/Server.cpp @@ -0,0 +1,86 @@ +//Server side Program in C/C++ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +static void msg( const char* msg){ + fprintf(stderr, "%s\n", msg); +} + +static void die(const char* msg){ + int err = errno; + fprintf(stderr, "[%d] %s\n", err,msg); + abort(); +} + +static void do_something(int connfd){ + char rbuf[64] = {}; + + ssize_t n = read(connfd, rbuf, sizeof(rbuf) - 1); + + if( n < 0 ){ + msg("read() error"); + return; + } + + printf("Client says: %s\n",rbuf); + + char wbuf[] = "world"; + write(connfd , wbuf, strlen(wbuf)); +} + + +int main(){ + //syscall to return integer for socket communication from kernel + int fd = socket(AF_INET, SOCK_STREAM , 0); + if( fd < 0 ){ + die("socket()"); + } + + //Set the option in various layer which will establish communication. + int val = 1; + setsockopt(fd, SOL_SOCKET , SO_REUSEADDR, &val , sizeof(val)); + + //bind, dealing wih IPv4 addresses + struct sockaddr_in addr = {}; + addr.sin_family = AF_INET; + addr.sin_port = ntohs(1234); + addr.sin_addr.s_addr = ntohl(0);// wildcard address 0.0.0.0 + int rv = bind(fd, (const sockaddr*)&addr, sizeof(addr)); + + if(rv){ + die("bind()"); + } + + //listen + rv = listen(fd , SOMAXCONN); + + if( rv ){ + die("listen()"); + } + + //Looping to connect to each connection. + while(true){ + //accept + struct sockaddr_in client_addr = {}; + socklen_t socklen = sizeof( client_addr ); + int connfd = accept(fd , (struct sockaddr*)& client_addr, &socklen); + if( connfd < 0 ){ + //error + printf("Error encountered while connecting with client."); + } + + do_something(connfd); + close(connfd); + } + + return 0; +} diff --git a/Server-Client Program/Server/bin/Debug/Server b/Server-Client Program/Server/bin/Debug/Server new file mode 100755 index 0000000000000000000000000000000000000000..24f95df000c230c1d875e4d50ae8e873cf2117e2 GIT binary patch literal 24080 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 RAtG7PT}tBJ6$%xo_)mJoMMwYu literal 0 HcmV?d00001 diff --git a/Server-Client Program/Server/obj/Debug/Server.o b/Server-Client Program/Server/obj/Debug/Server.o new file mode 100644 index 0000000000000000000000000000000000000000..5b79cc6657de5edc3119b722ab2d3e1d51025123 GIT binary patch literal 16344 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 this is a syscall which returns an fd. + + fd - It is like a integer which is like an ID used by kernel. It is basically related + to kernel functionality. + +bind() -> It is used to bind the address to the fd. + -> The address is which we want to connect with. + +listen() -> listen helps to establish connection with that address. + +accept() -> when connection is made my client, it returns an fd which represents the established connection. + +WORKFLOW OF SERVER (PSEUDO CODE): + + fd = socket(); + bind(fd,address) + listen(fd) + while(true) + conn_fd = accept(fd) + /**************/ + do something with conn_fd + doing something in this connection + /**************/ + close(conn_fd) + + +connect() -> take the fd from client side and make the connection from the address that + -> the address is of the server side. +WORKFLOW OF CLIENT (PSEUDO CODE) + + fd = socket() + connect(fd,address) + /*********/ + doing something in the connection/ + /*********/ + close(fd) diff --git a/Server-Client Program/Tut-Sheet-2.txt b/Server-Client Program/Tut-Sheet-2.txt new file mode 100644 index 0000000..34a2eea --- /dev/null +++ b/Server-Client Program/Tut-Sheet-2.txt @@ -0,0 +1,33 @@ +Starting of client and server. + +1. First we need fd using socket() + + int fd = socket(AF_INET,SOCK_STREAM,0); + + ->AF_INET = It is used to provide IPv4 + NOTE: AF_INET6 = It is used to provide IPv6 or dual-stack socket. + ->SOCK_STREAM = It is used to set the TCP protocol. + + +2. NEW SYSTEM CALL + + setsocketopt() + -> There are various layer of network communication and each layer have various option, from which we pick one to + configure the network communication. + -> This syscall is to set those option + + IMPORTANT: SO_REUSEADDR-> It is an option to reuse the same address when the process(communication) is restarted. + -> Risk of using it. + # If the previous connection using the same address didn't took all the packets and the process got closed + before taking it, the same address might be used by the same program with new instance of process or by another + program with new instance of process. This rouge packets is intented to send it to the address which is in reuse. + This cause problem. This problem also make it hackable. + + + NEW TERM: WILDCARD ADDRESS -> when we use sockets, the communication is design to between two process only. + Not allowing multicast or multiple communication. To establish this multiple communication we use wildcard address. + This is used on server-side program. + + +3. read() and write() + It returns number of read and written bytes. diff --git a/Server-Client Program/default.workspace b/Server-Client Program/default.workspace new file mode 100644 index 0000000..3bf095a --- /dev/null +++ b/Server-Client Program/default.workspace @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Server-Client Program/default.workspace.layout b/Server-Client Program/default.workspace.layout new file mode 100644 index 0000000..914b302 --- /dev/null +++ b/Server-Client Program/default.workspace.layout @@ -0,0 +1,6 @@ + + + + + +