Socket
Socket
Sign inDemoInstall

tcpmultiplexer

Package Overview
Dependencies
0
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    tcpmultiplexer

Sharing a server TCP connection between multiple clients


Version published
Weekly downloads
5
Maintainers
1
Install size
3.52 MB
Created
Weekly downloads
 

Readme

Source

multiplexer

Sharing a server TCP connection between multiple clients

Install

As the pre release, I only build this for Windows platform. But you can build it on other platforms using Mono. It should be easy since there's no external dependencies.

Grab the binary from release. Or via NPM:

npm install -g tcpmultiplexer

Usage

  1. Start the multiplexer from command line
  2. Connect clients to localhost:3333
  3. In multiplxer command line, input command connect <server> <port> to connect to the remote service that will be shared by all the clients.
  4. At any time, you can terminate a client, or connect a new client, without affecting the connection to the remote server.
> multiplexer --help

  -p, --port              (Default: 3333) Local port to listen for client
                          connections
  --help                  Display this help screen.
  --version               Display version information.
  remote-host (pos. 0)    Remote server to connect (for auto-connect). If not
                          specified, auto-connect is disabled.
  remote-port (pos. 1)    Remote port to connect (for auto-connect). If not
                          specified, auto-connect is disabled.

Example

multiplexer example.com 8080 -p 3333

Listens at localhost:3333 for client connections. Upon first client connection, automatically connects to remote server example.com:8080.

Introduction

This tool allows multiple TCP clients to share a single TCP connection to a server. Traffic generated by the server is forwarded to all clients. Traffic generated from any client is forwarded to the server.

This graph demonstrates the idea

How is it useful? In many cases, we want to write program to automate tasks with a remote service, but at the same time want to keep using the existing tool that doesn't offer the functionality that your automation program is capable of, but provides an easy/familiar UI, so that your automation program won't have to.

Performance

All TCP connections (server-multiplexer, multiplexer-clients) IO operations are completely non-blocking. I expect the traffic throughput to be very high.

Demo

Here's a demonstration of it in action. As an example, in this case, there're two MUD clients sharing the same connection to the server. Imagine one of the two clients is a thin program that automates your player, but provides no ability for human intervention. And the other client is a regular feature-rich MUD client that you can interact with.

demo

FAQs

Last updated on 28 May 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc