From 5fa791cf5e4b32ffb737a2d247544d531788002c Mon Sep 17 00:00:00 2001 From: mbandic Date: Wed, 27 Sep 2023 10:03:39 +0000 Subject: [PATCH] Working on socket pool.. --- .vscode/settings.json | 12 ++- lib/tcp_socket.hpp | 23 ++++-- src/tcp_socket.cpp | 183 +++++++++++++++++++++++++++++++++++++++++- test/client.cpp | 16 +++- test/client.o | Bin 74752 -> 101104 bytes test/server.cpp | 47 +++++++---- test/server.o | Bin 73864 -> 94608 bytes 7 files changed, 250 insertions(+), 31 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 11e5997..5ac5fd4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -45,6 +45,16 @@ "streambuf": "cpp", "cinttypes": "cpp", "typeinfo": "cpp", - "thread": "cpp" + "thread": "cpp", + "ctime": "cpp", + "chrono": "cpp", + "condition_variable": "cpp", + "optional": "cpp", + "ratio": "cpp", + "fstream": "cpp", + "mutex": "cpp", + "semaphore": "cpp", + "sstream": "cpp", + "stop_token": "cpp" } } \ No newline at end of file diff --git a/lib/tcp_socket.hpp b/lib/tcp_socket.hpp index 51e2c16..ba660cd 100644 --- a/lib/tcp_socket.hpp +++ b/lib/tcp_socket.hpp @@ -53,7 +53,9 @@ class server { void sync(void (*handlecli)(client&), const uint timeout = 100); void async(const uint limit, void (*handlecli)(client&, mutex&), const uint timeout = 100); - void pool(const uint limit, void (*handlecli)(client&, mutex&), const uint timeout = 100); + // void syncPool(void (*handlecli)(client&), const uint timeout = 100); + void asyncPool(const uint limit, void (*handlecli)(client&), const uint timeout = 100); + }; @@ -88,8 +90,12 @@ class client { #endif struct sockaddr_in addr; SSL* ssl = NULL; + string _address; + ushort _port; + uint _timeout; + SSL_CTX* _securefds = NULL; // server s klijentima - const server* srv; + const server* srv = NULL; // klijent sa serverom string ipv4; string ipv6; @@ -101,6 +107,7 @@ class client { ~client (); bool push (const string msg); string pull (size_t byte_limit = 1024); + bool reconnect(); /** * ustvari ne znam jel konekcija aktivna @@ -109,18 +116,20 @@ class client { }; -class Pool { +class clientPool { public: + mutex io; uint numcli; vector> drops; // konstruktor za klijente bez servera - Pool (const uint _numcli, const string address, const ushort port, const uint timeout = 100, SSL_CTX* securefds = NULL); + clientPool (const uint _numcli, const string address, const ushort port, const uint timeout = 100, SSL_CTX* securefds = NULL); // konstruktor za klijente sa serverom - Pool (const server *_srv, const uint _numcli, const uint timeout = 100, SSL_CTX* securefds = NULL); - ~Pool(); + clientPool (const server *_srv, const uint _numcli, const uint timeout = 100, SSL_CTX* securefds = NULL); + ~clientPool(); - void run(); + pair* pickup(); + void release(pair* drop); }; diff --git a/src/tcp_socket.cpp b/src/tcp_socket.cpp index 3a3e6bc..0b44b6c 100644 --- a/src/tcp_socket.cpp +++ b/src/tcp_socket.cpp @@ -83,6 +83,53 @@ void server::async(const uint limit, void (*handlecli)(client&, mutex&), const u } + +/** + * +*/ + +/** + * Metoda za sinkroni rad s klijentima, prima pokazivač na funkciju i timeout; + * Funkcija handlecli prima referencu tipa client - važno za definiranje funkcija koje se šalju; + * Nije moguće proslijediti druge parametre; +*/ + +// void server::syncPool(void (*handlecli)(client&), const uint timeout) { +// do { +// client cli(this, timeout, securefds); +// handlecli(cli); +// } while (true); +// } + +/** + * Metoda za asinkdorni rad s klijentima, prima limit, pokazivač na funkciju i timeout; + * Funkcija handlecli prima referencu tipa client - važno za definiranje funkcija koje se šalju; + * Nije moguće proslijediti druge parametre; +*/ + +void server::asyncPool(const uint limit, void (*handlecli)(client&), const uint timeout) { + clientPool clipool(this, limit, timeout, securefds); + + for (uint i=0; i* cli = clipool.pickup(); + handlecli(*(cli->second)); + clipool.release(cli); + } + })); + } + + for (uint i=0; i~client(); + throw string("[WARNING] Socket closed remotely"); break; } @@ -381,8 +432,111 @@ string client::pull(size_t byte_limit) { return string(res); } +bool client::reconnect() { + if (_address.empty() && srv != NULL) { + // srv = _srv; + socklen_t len = sizeof(struct sockaddr_in); + + if ((conn = accept(srv->sock, (struct sockaddr *)&(srv->addr), (socklen_t*)&len)) < 0) { + throw string("[ERROR] Unable to accept client connection "); + } + + #if __linux__ + struct timeval tv; + tv.tv_sec = _timeout/1000; + tv.tv_usec = (_timeout%1000)*1000; + + if (setsockopt(conn, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(struct timeval))) { + throw string("[ERROR] Unable to set timeout "); + } + #elif _WIN32 + DWORD tv = timeout; + + if (setsockopt(conn, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof(tv))) { + throw string("[ERROR] Unable to set timeout "); + } + #endif + + + -Pool::Pool(const uint _numcli, const string address, const ushort port, const uint timeout, SSL_CTX* securefds) { + if (_securefds) { + ssl = SSL_new(_securefds); + if (!ssl) { + throw string("[ERROR] Creating SSL object "); + } + SSL_set_fd(ssl, conn); + + // Perform SSL handshake + if (SSL_accept(ssl) <= 0) { + SSL_free(ssl); + throw string("[ERROR] Performing SSL handshake "); + } + } + + char ipv4_buff[INET_ADDRSTRLEN]; + char ipv6_buff[INET6_ADDRSTRLEN]; + + inet_ntop(AF_INET, &(srv->addr.sin_addr), ipv4_buff, INET_ADDRSTRLEN); + ipv4 = ipv4_buff; + inet_ntop(AF_INET6, &(srv->addr.sin_addr), ipv6_buff, INET6_ADDRSTRLEN); + ipv6 = ipv6_buff; + } + else { + + #if _WIN32 + if (WSAStartup(MAKEWORD(2,2),&wsa) != 0) { + throw string("[ERROR] Unable to set WinSock " + to_string(WSAGetLastError())); + } + #endif + + conn = socket(AF_INET, SOCK_STREAM, 0); + if (conn < 0) { + throw string("[ERROR] Unable to open TCP socket "); + } + + const string _address = isIPAddress(_address) ? _address : ipFromDomain(_address); + + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = inet_addr(_address.c_str()); + addr.sin_port = htons(_port); + + if (connect(conn, (struct sockaddr*)&addr, sizeof(struct sockaddr_in)) != 0) { + throw string("Unable to connect to server "); + } + + #if __linux__ + struct timeval tv; + tv.tv_sec = _timeout/1000; + tv.tv_usec = (_timeout%1000)*1000; + + if (setsockopt(conn, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(struct timeval))) { + throw string("[ERROR] Unable to set timeout "); + } + #elif _WIN32 + DWORD tv = timeout; + if (setsockopt(conn, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof(tv))) { + throw string("[ERROR] Unable to set timeout "); + } + #endif + + if (_securefds) { + ssl = SSL_new(_securefds); + if (!ssl) { + throw string("[ERROR] Creating SSL object "); + } + SSL_set_fd(ssl, conn); + + // Perform the SSL handshake + if (SSL_connect(ssl) <= 0) { + SSL_free(ssl); + throw string("[ERROR] Performing SSL handshake "); + } + } + } +} + +clientPool::clientPool(const uint _numcli, const string address, const ushort port, const uint timeout, SSL_CTX* securefds) { if (_numcli > 1 ) { numcli = _numcli; } @@ -397,7 +551,7 @@ Pool::Pool(const uint _numcli, const string address, const ushort port, const ui } -Pool::Pool(const server *_srv, const uint _numcli, const uint timeout = 100, SSL_CTX* securefds = NULL) { +clientPool::clientPool(const server *_srv, const uint _numcli, const uint timeout, SSL_CTX* securefds) { if (_numcli > 1 ) { numcli = _numcli; } @@ -406,12 +560,33 @@ Pool::Pool(const server *_srv, const uint _numcli, const uint timeout = 100, SSL } for (uint i=0; i* clientPool::pickup() { + cout << "Uzimam clienta " << endl; + lock_guard master(io); + while (true) { + for (uint i=0; itry_lock()) { + cout << "Odabrao sam " << i << endl; + + return &drops[i]; + } + } + } +} + +void clientPool::release(pair* drop) { + drop->first->unlock(); +} + +clientPool::~clientPool() { numcli = 0; drops.clear(); diff --git a/test/client.cpp b/test/client.cpp index 2a982e7..21a7745 100644 --- a/test/client.cpp +++ b/test/client.cpp @@ -1,9 +1,11 @@ #include #include +#include #include "../lib/tcp_socket.hpp" using namespace std; +using namespace chrono; int main() { @@ -26,12 +28,20 @@ int main() { // } uint i = 0; - client mycli("localhost", 5000); + + auto t1 = high_resolution_clock::now(); + client mycli("localhost", 7000); + auto t2 = high_resolution_clock::now(); + cout << "Connected: " << duration_cast(t2 - t1).count() << endl; while (true) { + sleep(4); mycli.push("Helllo " + to_string(i++)); - cout << mycli.pull() << endl; - usleep(10000); + cout << "> " << mycli.pull() << endl; + auto t3 = high_resolution_clock::now(); + cout << "Sending and recive: " << duration_cast(t3 - t2).count() << endl; + // usleep(10000); + sleep(1); } // secure crypto; diff --git a/test/client.o b/test/client.o index 07bb13fa86e255f22756680bfd787f87c534c90c..45534e74e42bf9f2dd14565cdb7a63f326011c22 100755 GIT binary patch literal 101104 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

)-wf{z;!py5Lg7 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

aj{!AfUh{biYQnV~{0)e>Z$(~!{*UDr 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 E078iFp8x;= diff --git a/test/server.cpp b/test/server.cpp index 5adc414..df074c4 100644 --- a/test/server.cpp +++ b/test/server.cpp @@ -62,27 +62,42 @@ int main() { // cli.push(fromclient); // }, 200); - server myserver(5000, 100); - myserver.pool(10, [](client &cli, mutex &io) { - cout << "Klijent " << cli.ipv4 << endl; - string fromclient = cli.pull(); - // io.lock(); - cout << "S klijenta " << fromclient << endl; - // io.unlock(); - // fromclient += teststr; - usleep(10000); - cli.push(fromclient); - }, 200); - - // string teststr = " Idemooo"; - - // myserver.sync([](client &cli) { + server myserver(7000, 100); + // myserver.asyncPool(10, [](client &cli) { // cout << "Klijent " << cli.ipv4 << endl; // string fromclient = cli.pull(); + // // io.lock(); // cout << "S klijenta " << fromclient << endl; + // // io.unlock(); // // fromclient += teststr; + // usleep(10000); // cli.push(fromclient); - // }); + // }, 200); + + + + // string teststr = " Idemooo"; + + myserver.async(4, [](client &cli, mutex &io) { + while (true) { + try { + string fromclient = cli.pull(); + cout << "> " << fromclient << endl; + // fromclient += teststr; + cli.push(fromclient); + } catch (const string err) { + cout << err << endl; + try { + cli.reconnect(); + } catch (const string err) { + cout << err << endl; + } + } + } + }); + + + } catch(const string err) { diff --git a/test/server.o b/test/server.o index 2348dfd56f09e85c3fc416fbe028e61fd337f143..b2275d5e85df9eb6a125ca7e08c7d69656003cbc 100755 GIT binary patch literal 94608 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 ZQdb=_28mSpM;$9QoT(J$Opc`S{{Rus^1J{5