SYNCHRONIZE

Purpose

This is a small program that helps you to synchronize the system clocks of your PCs in your LAN. SYNCHRONIZE can either be used as a client (to read the time from a server) or as a server (to tell the time to clients). SYNCHRONIZE as a client can also read the time from UNIX stations (I tried LINUX and IBM AIX, and it worked with both of them).


License

This software is FREE. You can use it as much as you like as long as you leave it unchanged.
The author does not guarantee that the software will work in your environment and that it
 meets your needs.


System Environment

SYNCHRONIZE works successfully works with Windows 95, Windows 98, Windows NT 4.0 and 
Windows 2000. It will presumably work with Windows ME, but I have not tested it yet.


Installation

You can get SYNCHRONIZE from the author's website (http://www.jhillebrand.de). You can
download it as an EXE-file (self-extracting) or as a ZIP-file (for those, who are not 
allowed to download EXE-files for security reasons). Both archives only consists of two
files, SYNCHRONIZE.exe and this file. The self-extracting files proposes to copy the two
files to c:\program files\SYNCHRONIZE. You can, of course, choose to copy it to any other 
location. After having copied the files, you can use SYNCHRONIZE at once.


How to use it

SYNCHRONIZE is intended to be used in the background, therefore any unnecessary overhead 
(such as a GUI to configure it, extensive help) was avoided. This is the reason why SYNCHRONIZE 
only has some 43KB. To configure it, you have to use start options when starting it. 
These option all begin with a hyphen(-). They tell SYNCHRONIZE how to work (as a client or 
a server), where to read the time from ( IP address of server or DNS name of server, port 
to connect to) and the operation mode (only show the help, only show the server's time or 
set the own PC's time and date). 

As you probably do not want the time to be synchronized only once, you will probably want 
to restart SYNCHRONIZE regularly (e.g. each time the PC is booted, every day, every 8 hours etc.). I therefore suggest to have a shortcut in your autostart folder that starts SYNCHRONIZE each time the PC is booted. When creating this shortcut, you can include the required options there. But before I describe how to do that, I will give the list of parameters:

Each parameter starts with a hyphen(-), contains one character, and most parameters are foolowed by a blank and then a value. Parameters are case-sensitive.

-d + time in seconds: delay before time is read from server. Default is 60 seconds. Does not work in connection with -h, -S and -v. 
	Example: SYNCHRONIZE -d 30

-e + time in hours: interval, when time is supposed to be read from server. Default is 0, which means time is only  read once. With this option you can tell SYNCHRONIZE to start and remain in background. It will then read the time every given hours. Does not work in connection with -h, -S and -v.
	Example: SYNCHRONIZE -e 4		will read the time every 4 hours

-h: open a message box containing the list of valid options in abbreviated form.

-i + IP-address of server: Address of server to read time from. This option does not work with any windows environment. In my office in only worked with Windows 2000. Using SYNCHRONIZE as a client, either this option or option -n is mandatory. It will be ignored for a server.
	Example: SYNCHRONIZE -i 192.168.2.233

-n + hostname of server: Hostname of server to read time from. This option will be ignored when running as a server. As a client, either this option or -i is mandatory.
	Example: SYNCHRONIZE -n timeserver.mynet.com

-p + port number: Port number of server to read time from. Default is 37 (This is the port, UNIX stations use). When using a different port, both server and client will have to set this port.
	Example: SYNCHRONIZE -p 123

-S: Switch to make this station the time server. This does not work in connection with -h and -v.
	Example: SYNCHRONIZE -S

-v: Show time of server, but do not set it. This is a good option to test, whether a network connection to the server can be achieved and whether you can read the time from the server. 
	Example: SYNCHRONIZE -v


A typical set of parameters for a server could be these:

	SYNCHRONIZE -S

For a client, you might choose these parameters:

	SYNCHRONIZE -n timeserver.mynet.com -e 8

To test the network connection the typical parameters are:

	SYNCHRONIZE -n timeserver.mynet.com -v


Some Considerations about Synchronization

SYNCHRONIZE uses a time format that gives you the amount of seconds since 1.1.1900. This means 
that the precision of time can only be in the dimension of seconds. We do NOT get milliseconds. 
So, if you need the time more precise than in seconds, SYNCHRONIZE is not the tool you need.

Using SYNCHRONIZE will only make sense, if you have at least one PC or workstation that has 
got the exact time. There are several good tools to get the time from atomic clocks via the 
internet. So you could make one of your workstations get the exact time, and you can then use 
SYNCHRONIZE to distribute the exact time to your other PCs or workstations. If you use a LINUX 
workstation in Germany and contact the internet using an ISDN telephone line, you will be able 
to get the exact time via ISDN everytime you activate your internet connection. This is one of 
the cheapest ways to do it, because you probably need to connect to the internet anyway. If 
you would like to know how to do this, please contact me (hillebrand@jhillebrand.de).

In my network, I start SYNCHRONIZE on every PC by adding a shortcut to the AUTOSTART folder. 
This makes SYNCHRONIZE start after booting the PC. By default, SYNCHRONIZE delays reading the 
time by 60 seconds. This is done, because mosts PCs have quite a lot of initialization to do 
after booting. So SYNCHRONIZE will do its work when the PC is probably just about to take its 
first "break" and when your network initializations will probably be ready. If you know that 
the initialization takes longer on your PC, it will better to enhance the delay by using the 
-d option (e.g. -d 120 to set a delay of 2 minutes). Its best to let SYNCHRONIZE do its 
work when your PC is not too busy, because a delay is its processing will have an influence 
on the exactness of the time your system clock will be set to.

 

The screenshot above shows how I created the shortcut in my AUTOEXEC folder. The screenshot 
is in German, but you will probably recognize the important parts. The screenshot was done 
on Windows 2000. On other versions it will look a little bit different.

Using Windows 2000 and Windows NT you might encounter the problem that you as the user are 
not allowed to set the system clock. If this is the case, SYNCHRONIZE will not be able to do 
so as well. Please see your systems administrator!

Option -i will not work with every version of Windows, in fact, in my network it only works 
with Windows 2000. In this case, you have to use option -n instead. But sometimes your 
time server will not by registered with DNS and therefore will not have a hostname. You will 
then have to give it a host name in your local HOSTS file. You will probably find it here:

c:\WINNT\system32\drivers\etc on Windows 2000 and Windows NT and in
c:\WIN\systems32\drivers\etc on Windows 95 and Windows 98

In this file you will have to add an entry similar to this one:

192.168.1.10		timeserver

where 192.168.1.10 is the IP address of your time server and "timeserver" is the hostname 
you would to use. You can then use the -n option like this:

SYNCHRONIZE -n timeserver


Support

For Support, please feel free to send an e-mail to hillebrand@jhillebrand.de. I will answer 
your questions as soon as I can. Of course I cannot guarantee that I will be able to solve 
your problem satisfactorily.


Your Help is appreciated!

In case this little manual does not contain enough information for you to use SYNCHRONIZE 
satisfactorily, please, let me know, and I will try to add the missing information to the 
next version of this document.

Thank you very much!!
