a lightweight C++ TCP socket library, powered by epoll on Linux platform and kqueue on macOS/Unix.
- High performance and high concurrenc benefit from epoll/kqueue
- Support send queue with thread safe
- Automatic memory management and ensure performance by c++ move semantics
- Multi-instance support
- Multiplatform support, Linux/macOS and most Unix-like OS.
- C++11
mkdir build && cd build && cmake .. && make
- simple echo server
#include "SocketPP.h"
using namespace SocketPP;
int main() {
const int port = 6000;
TCPServer server(port);
server.setRecvHandle([&] (const Message& message) {
server.send(message);
});
return server.loop();
}
and then use nc tools, or run client example:
nc localhost 6000
or
#include "SocketPP.h"
using namespace SocketPP;
int main() {
const int port = 6000;
TCPClient client("127.0.0.1", port);
client.setConnHandle([&] (const TCPStream& stream) {
client.send("hello");
});
client.setRecvHandle([&] (const Message& message) {
printf("on receive: msg:%s", message.rawMsg.toString().c_str());
});
return client.loop();
}