TV's server
index
- About TV's server
- Then and now
- Command line
- Development status
- Requirements
About TV's server
TV's server is a platform to run network services on. These services are created from different protocols, these protocols are divided in three different groups. The user (not the programmer) can create sush a service and will therefore determine which protocols should work together. TV's server itself includes no protocols, these are supplied by one or more plug-in(s). Sush a plug-in can be made in the programming-language assembler or C(++). By default TV's server. TV's software supplies the TCP/IP and HTTP protocol and a control panel plug-in.
Then and now
Tv's server version 1 and 2 where a HTTP-server build in assembly. This project started somewhere in 2006 and the last release was from 2009. The idea of building this program in assembler was to make a small and efficient executable. Another idea was that the webserver should be able to be controlled through a web-interface, so it is accessible from almost everywhere. To be able to expand the protocols with other (non http-protocols) a plug-in system was introduced. This system was built quickly and because of this very basic and lack of possibilities (more about this at "About protocols/plugins"). In the years of development I learned a lot from assembly-programming (I started with no knowledge at all) and discovered that a lot of programming could be far more efficient. Because of these reasons I decided to restart the project, this time completely plug-in based. The documentation of this project is right in front of you. None of the original code is used to build this project.
The goal of the rewrite was to:
- make the software stable since the TV's server v1 and 2 had some issues that could make it crash after some time of running;
- build a 64-bit version of the program to be able to handle big memory (theoretical up to 16 EB);
- build a good plug-in system to create the ability to make it easy to create lots of protocols for TV's server.
Some big differences between this and the old versions are:
- The control panel of the original TV's server was always running on port 81, in the new version it is changed to port 10 on default but it is optional and can be changed to any port. It can even be stopped completely or replaced by an own build control panel;
- this control panel is now completely build upon information gathered from every plug-in, instead of having a static layout;
- it is now possible to assign one protocol to one port, the old version would activate every protocol on every port;
- the http-protocol is not build-in in the executable anymore, but is just an plug-in like every other protocol;
- TV's server now offers functionality to the plug-in, where the old version didn't;
Command line
TV's server can run as a service and can run as an user-process. The behavior depends on the command line and if the service is installed or not:
- At default TV's server will try to start the service, if this fails it will run as a user-process
- -b Force TV's server to run as a user-process.
- -i Install the service.
- -u Uninstall the service
- -s Stop the service from running
Development status
This project is still under heavy development, however, big changes to the current API will not be made and new versions will therefor be backward comaptible. Some known isues: description, groupName, iconURL and bigIconURL and unicode string are not supported by the control panel yet; GetCopyOfInternalProtocolStructures does not return a copy but the pointer also used by TV's server; the control panel is not secured by a password yet. And it goes without saying that I have a whole list of features I would like to add, however, time is something I don't have, so this could take a while. Please be patient and check my website once in a while for new releases.
Requirements
- TV's server is designed to work on all Windows NT systems (NT, 2000, XP, Vista, 7, 8), however, the last build was also successfully tested on Windows 9x (95, 98 and ME).
- Windows 95 will need a "windows 95 WinSock v2.2" update to be able to run the TCP/IP protocol
- TCP/IP v6 support (required if you want host a site running on TCP/IP v6);
- Windows 9x and windows NT do not support TCP/IP v6;
- Windows 2000 needs an update to support TCP/IP v6, named "Windows 2000 IPv6 preview". As the name clearly states, this is a preview and is not recommended to use this on an operating server;
- Windows XP sp1 supports TCP/IP v6 when "Windows XP Advanced Networking Pack for Sp1" is installed;
- Winows XP sp2 and higher do support TCP/IP v6 by default.
- Intel x86 or AMD64 processor
- Early intel x86 processors have a bug named Pentium F00F bug, these processors are not supported;
- Early AMD64 processors don't support the instruction cmpxchg16b, these processors are not supported for the x64 executable. It is possible to run the x86 executable on these processors.