blob: 8da33385bbe31878253e70c5089c658d1ca81836 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
psocksxx
========
[![Build Status](https://travis-ci.org/nukedzn/psocksxx.svg)](https://travis-ci.org/nukedzn/psocksxx)
A C++ wrapper for POSIX sockets
## Copyright and License
Copyright (C) 2015 Uditha Atukorala.
This software library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This software library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[GNU Lesser General Public License](http://www.gnu.org/licenses/lgpl.html)
for more details.
## The Concept
This project was started to add to the features provided by the simple
[socket-library](https://github.com/uditha-atukorala/socket-library) project,
specially socket timeouts. But rather than sticking to the same class structure
it was decided to use [stream buffers](http://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html)
in C++ standard library.
The inspiration to derive from std::streambuf came from the [socket++](http://www.linuxhacker.at/socketxx)
library initially developed by Gnanasekaran Swaminathan. While the
socket++ library seems to be stable and feature rich, the coding style
and the lack of API documentation makes it a little difficult for the
beginners.
psocksxx library attempts to borrow the concepts from socket++ and
socket-library, but not the code, and create a well documented (and
hopefully easy to understand) POSIX socket communication wrapper in
C++. To keep the code simple and clean this project will only support
POSIX sockets.
## Downloads
You can download source distributions from https://github.com/nukedzn/psocksxx/releases.
### Debian/Ubuntu packages
Please check availability for your distribution first ([Debian](https://packages.debian.org/search?searchon=names&keywords=psocksxx), [Ubuntu](http://packages.ubuntu.com/search?suite=wily§ion=all&arch=any&keywords=psocksxx&searchon=names)).
$ sudo aptitude update
$ sudo aptitude install libpsocksxx-dev
## Dependencies
* CppUnit >= 1.12.1 (for unit tests)
* Doxygen (for doxygen documentation, of course)
## Bugs and Feature Requests
Please report all bugs and feature requests under [issues](https://github.com/nukedzn/psocksxx/issues).
## Compiling from source
If you are using the github source then first you need to initialise
autotools.
$ libtoolize (glibtoolize in OS X)
$ aclocal
$ autoheader
$ autoconf
$ automake --add-missing (you will need automake >= 1.13)
After that you can use the usual `./configure && make`
## API Documentation
* [v1.0](https://nukedzn.github.io/psocksxx/docs/v1.0)
|