Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nsiatras/extasys
Asynchronous TCP/UDP socket library
https://github.com/nsiatras/extasys
android chat-application java java-sockets java-sockets-library network socket tcp tcp-client tcp-server tcp-socket udp udp-client udp-server udp-socket
Last synced: 2 days ago
JSON representation
Asynchronous TCP/UDP socket library
- Host: GitHub
- URL: https://github.com/nsiatras/extasys
- Owner: nsiatras
- License: mit
- Created: 2013-11-24T14:53:59.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2024-09-17T10:25:05.000Z (about 2 months ago)
- Last Synced: 2024-09-17T13:08:55.460Z (about 2 months ago)
- Topics: android, chat-application, java, java-sockets, java-sockets-library, network, socket, tcp, tcp-client, tcp-server, tcp-socket, udp, udp-client, udp-server, udp-socket
- Language: Java
- Homepage:
- Size: 2.53 MB
- Stars: 39
- Watchers: 2
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Extasys - Asynchronous TCP/UDP socket library
=======Extasys is a high performance, **asynchronous TCP/UDP socket library** for Java (JDK 8 and newer).
Its **multi-threaded and lightweight** nature makes it ideal for super fast data transfer even on systems with ARM architecture like Android smartphones and single-board computers (Raspberry Pi, Orange Pi etc.).
Extasys is designed to take the hard job done and let you think only about the message exchange (the process).```mermaid
flowchart TD;Client1(Client #1) ---|Data I/O|ExtasysListener(Extasys Listener);
Client2(Client #2) ---|Data I/O|ExtasysListener(Extasys Listener);
Client3(Client #3) ---|Data I/O|ExtasysListener(Extasys Listener);
Client...(Client ...) ---|Data I/O|ExtasysListener(Extasys Listener);ExtasysListener --> ThreadPool(ThreadPool: Non-Blocking Multithreaded Data Processing);
ThreadPool --> ExtasysListener;```
#### Features
* Dedicated Thread Pool for each TCPServer, TCPClient, UDPServer and UDPClient
* Multiple listeners per server and multiple connectors per Client
* TCP message collector with character or string message splitter
* Auto-Handle Message Splitter characters for TCP connections
* On-the-Fly Data Manipulations (Encryption, Encoding, Compression) using the [DataConverter](https://github.com/nsiatras/extasys/blob/master/Extasys%20for%20Java/src/Extasys/DataConvertion/DataConverter.java) objectExtasys project is Developed with NetBeans IDE
## How to Use
Fully functional examples on how to use Extasys can be found [inside the repository](https://github.com/nsiatras/extasys/tree/master/Extasys%20for%20Java%20Examples).
More information on how to use Extasys can be found on the [wiki pages](https://github.com/nsiatras/extasys/wiki)
#### Easy to follow examples:
* [TCP Server Example](https://github.com/nsiatras/extasys/tree/master/Extasys%20for%20Java%20Examples/Extasys.Examples.TCPServer) - Simple TCP Server with UI
* [TCP Client Example ](https://github.com/nsiatras/extasys/tree/master/Extasys%20for%20Java%20Examples/Extasys.Examples.TCPClient) - Simple TCP Client with UI
* [UDP Server Example ](https://github.com/nsiatras/extasys/tree/master/Extasys%20for%20Java%20Examples/Extasys.Examples.UDPServer) - Simple UDP Server with UI
* [UDP Client Example ](https://github.com/nsiatras/extasys/tree/master/Extasys%20for%20Java%20Examples/Extasys.Examples.UDPClient) - Simple UDP Client with UI
#### Chat Server client examples:
* [TCP Chat Server Example](https://github.com/nsiatras/extasys/tree/master/Extasys%20for%20Java%20Examples/Extasys.Examples.TCPChatServer) - Chat Server Example with UI
* [TCP Chat Client Example](https://github.com/nsiatras/extasys/tree/master/Extasys%20for%20Java%20Examples/Extasys.Examples.TCPChatClient) - Chat Client Example with UI#### Quick Examples:
* [Establish a TCP Server](https://github.com/nsiatras/extasys/wiki/Establish-a-TCP-Server)
* [Establish a TCP Client](https://github.com/nsiatras/extasys/wiki/Establish-a-TCP-Client)
* [Establish a UDP Server](https://github.com/nsiatras/extasys/wiki/Establish-a-UDP-Server)
* [Establish a UDP Client](https://github.com/nsiatras/extasys/wiki/Establish-a-UDP-Client)