Coder Social home page Coder Social logo

mossbauerlab / tinytcpserver Goto Github PK

View Code? Open in Web Editor NEW
17.0 7.0 6.0 588 KB

A small tcp server working under Mono or .NET (4.0) and provides hooks for handling data exchange with clients (works under mono and .net). Behaviour/protocol/reaction could be specified via custom C# script.

Home Page: https://mossbauerlab.github.io/TinyTcpServer

License: GNU General Public License v3.0

C# 99.78% Batchfile 0.22%
tcp-server hooks network tcp-ip server multi-client charp-tcp-server tcp tcp-socket tcp-client

tinytcpserver's Issues

[1.2.1] More powerful scripting

I wrote complicated scripts depending on other assemblies and got compilation errors (possibly due to compiler was unable to load referenced assemblies), so we should properly adjust compiler (via one more parameter to FlexlibleTcpServer).

[1.3] Multiple platform support

Now TinyTcpServer supports only net40, we should support multiple platforms:

net45 (add additional) async Interface

netstandard2.0

netcoreapp2.0+

[1.1] More logical API

Surely Start and Restart method must be overloaded with function without parameters for starting and restarting server on the same IP and Port.

1.2.3 More convenient GUI tool

We have to make GUI more convenient to use:

  • display and edit config options (grid like control) with possibility to export
  • logging more cases 4 FlexibleTcpServer (display compiler options)
  • remember directories path

Use TcpClient for test

I think parallel to NetworkClient class that works with pure sockets we should add option to run server with TcpClient, and this would be the way to TinyTcpClient project.

Common server API

API must contains following functions:

  1. Start on pair IP, port. If not defined will be used last values or default

  2. Stop server

  3. Restart server

  4. Add or remove filter (by tcp port, by ip address)

  5. Add or remove handlers on Receive e.t.c

  6. Send data to defined client (ip+tcp port)

Release 1.1

The following task should be included in release

#2
#3
#4
#5
#6

However, I was not able to solve all the problems with multiclient parallel working without any protocol on raw data. Maybe it is impossible to do it without some tricks: protocls, resending e.t.c. Hoever we should think if we could speed up our server (v.1.2) and we shoul measure it.

[1.2] Script Engine

There is a idea to make server awailable to work with any protocols, over TinyTcpServer itself (as transport layer). Possibly script engine will be Roslyn

[1.2] GUI Adjustment

For case when we are running server with script we must adjust GUI for this case

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.