An open-source, cross-platform, secure, extensible, full-duplex custom protocol socket server and client library.
- Java Client
- Kotlin Client
- JavaScript Client
- C Client
- C++ Client
- Rust Client
- PHP Server
- Node.js Server
- Next.js Server
- C Server
- C++ Server
- License
The Java client connects to a secure socket server using a custom protocol. It performs a handshake and sends encrypted messages with HMAC for integrity.
- Ensure you have JDK installed.
- Compile the Java client:
javac -cp . clients/java/sock-client.java - Run the client:
java -cp . SecureClient
- Ensure the server is running and accessible at the specified address and port.
The Kotlin client functions similarly to the Java client, utilizing Kotlin's features for a more concise implementation.
- Ensure you have Kotlin installed.
- Compile the Kotlin client:
kotlinc clients/kotlin/sock-client.kt -include-runtime -d sock-client.jar
- Run the client:
java -jar sock-client.jar
- Ensure the server is running and accessible at the specified address and port.
The JavaScript client uses Node.js to connect to the secure socket server, sending and receiving encrypted messages.
- Ensure you have Node.js installed.
- Install the required packages:
npm install
- Run the client:
node clients/javascript/sock-client.js
- Ensure the server is running and accessible at the specified address and port.
The C client connects to the server using sockets and implements encryption and HMAC for secure communication.
- Ensure you have GCC and OpenSSL installed.
- Compile the C client:
gcc -o sock-client clients/c/sock-client.c -lssl -lcrypto
- Run the client:
./sock-client
- Ensure the server is running and accessible at the specified address and port.
The C++ client is similar to the C client but utilizes C++ features for better structure and readability.
- Ensure you have g++ and OpenSSL installed.
- Compile the C++ client:
g++ -o sock-client clients/c++/sock-client.cpp -lssl -lcrypto
- Run the client:
./sock-client
- Ensure the server is running and accessible at the specified address and port.
The Rust client connects to the server using TCP and implements secure messaging with encryption and HMAC.
- Ensure you have Rust installed.
- Compile the Rust client:
rustc clients/rust/sock-client.r
- Run the client:
./sock-client
- Ensure the server is running and accessible at the specified address and port.
The PHP server listens for incoming connections and handles secure communication with clients using TLS.
- Ensure you have PHP installed with OpenSSL support.
- Run the PHP server:
php server/php/sock-server.php
- Ensure the server is configured with the correct paths to the SSL certificates and is running on the specified port.
The Node.js server uses TLS to secure communication with clients.
- Ensure you have Node.js installed.
- Run the Node.js server:
node server/node.js/sock-server.node.js
- Ensure the server is configured with the correct paths to the SSL certificates and is running on the specified port.
The Next.js server uses TLS to secure communication with clients.
- Ensure you have Node.js installed.
- Run the Next.js server:
node server/next.js/sock-server.next.js
- Ensure the server is configured with the correct paths to the SSL certificates and is running on the specified port.
The C server listens for incoming connections and implements secure communication with clients using OpenSSL.
- Ensure you have GCC and OpenSSL installed.
- Compile the C server:
gcc -o sock-server server/c/sock-server.c -lssl -lcrypto
- Run the server:
./sock-server
- Ensure the server is configured with the correct paths to the SSL certificates and is running on the specified port.
The C++ server is similar to the C server but utilizes C++ features for better structure and readability.
- Ensure you have g++ and OpenSSL installed.
- Compile the C++ server:
g++ -o sock-server server/c++/sock-server.cpp -lssl -lcrypto
- Run the server:
./sock-server
- Ensure the server is configured with the correct paths to the SSL certificates and is running on the specified port.
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.