https://github.com/rohanvdvivedi/connman
Multithreaded network connection handler library in C.
https://github.com/rohanvdvivedi/connman
connection-pool multithreaded-server tcp tcp-client tcp-server udp udp-client udp-server
Last synced: 3 months ago
JSON representation
Multithreaded network connection handler library in C.
- Host: GitHub
- URL: https://github.com/rohanvdvivedi/connman
- Owner: RohanVDvivedi
- Created: 2019-09-29T19:52:19.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-17T18:02:21.000Z (9 months ago)
- Last Synced: 2024-08-18T08:23:29.481Z (9 months ago)
- Topics: connection-pool, multithreaded-server, tcp, tcp-client, tcp-server, udp, udp-client, udp-server
- Language: C
- Homepage:
- Size: 607 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ConnMan
This is a C library, for developing multithreaded networking applications.
It is essentially an abstraction layer over the POSIX sockets library, providing a handler-callback based network agnostic API.
It allows you to change the underlying protocol layers (tcp to udp or ipv4 to ipv6) without any change in application logic.
Additionally, it provides a stream interface to work with tcp sockets, along with ssl and compression support.## Setup instructions
**Install dependencies :**
* [Cutlery](https://github.com/RohanVDvivedi/Cutlery)
* [BoomPar](https://github.com/RohanVDvivedi/BoomPar)
* [openssl](https://github.com/openssl/openssl) ($ sudo apt install libssl-dev)
* [zlib](https://github.com/madler/zlib) ($ sudo apt install zlib1g-dev)**Download source code :**
* `git clone https://github.com/RohanVDvivedi/ConnMan.git`**Build from source :**
* `cd ConnMan`
* `make clean all`**Install from the build :**
* `sudo make install`
* ***Once you have installed from source, you may discard the build by*** `make clean`## Using The library
* add `-lconnman -lboompar -lpthread -lcutlery -lssl -lcrypto -lz` linker flag, while compiling your application
* do not forget to include appropriate public api headers as and when needed. this includes
* `#include`
* `#include`
* `#include`
* `#include`
* `#include`
Additionally the library also provides the following stream apis, to create appropriate streams as per use.
* `#include`
* `#include`
* `#include`
* `#include`
* `#include`
* `#include`
* `#include`
Below is the list of headers that contain utility functions that can be used with the created streams.
* `#include`
Below header container allows you to manage multiple streams each chained with an underlying stream managed as a stack.
* `#include`## Instructions for uninstalling library
**Uninstall :**
* `cd ConnMan`
* `sudo make uninstall`## Third party acknowledgements
* *gzip and deflate compression streams, internally supported by [zlib](https://github.com/madler/zlib) checkout their website [here](https://zlib.net/).*
* *SSL and TLS encryption for ssl-ed streams, internally supported by [openssl](https://github.com/openssl/openssl) checkout their website [here](https://www.openssl.org/).*