The best way to write a server from scratch is probably by using the TINE server wizard. The next best way is to make a copy of a working server and then make modifications to suite the needed functionality. To this end it is instructive to follow the Build Recipe outlined below.
- Locate the TINE distribution and make sure you have drive mapped to the DOS subdirectory. At DESY, this is likely to be either L:\KERNEL\DOS or S:\KERNEL\DOS depending on the file server.
- Start Borland C++ 3.1 in DOS. You should be able to run Borland within Windows NT or XP without any problems. From the “compiler” options choose “Large” memory model and 386 instruction set. From the “directories” options, make sure the “Include” directories point to the DOS\INCLUDE directory from the TINE distribution. For instance L:\KERNEL\DOS\INCLUDE.
- Create a directory for your client/server project, for instance G:\RPCSERV.
Copy the files
- L:\KERNEL\DOS\SRC\rpcserv.c
- L:\KERNEL\DOS\EXAMPLE\sinsrv.c
- L:\KERNEL\DOS\EXAMPLE\fecdef.h
- L:\KERNEL\DOS\EXAMPLE\*.csv
to this directory. For the sake of argument, let’s say the directory is indeed called G:\RPCSERV.
You have full control over the contents of the files copied here. In particular, you will probably want to edit (but not change the module name) sinsim.c to meet your needs. You may not have to touch rpcserv.c at all, but you can if you need to add something to the main loop.
- Choose “New Project” from the Project menu. Call the project “rpcserv.prj”.
Select “Add Item”. Add the following files (assuming your drive mapping points to L:\KERNEL\DOS):
- L:\KERNEL\DOS\LIB\tine.lib
- G:\RPCSERV\rpcserv.c
- G:\RPCSERV\sinsrv.c
- Make the project. It should compile and link successfully.
- Edit the file G:\RPCSERV\fecid.csv and give your server a more meaningful (albeit unique) server name than “MYFEC”
- Edit the file G:\RPCSERV\exports.csv and make sure all references to “MYSINE” are likewise changed to something more meaningful (but nonetheless system-wide unique).
- Before you try to run the server, make sure your PC has a valid IP address and that the Netware IP kernel is running (see the Troubleshooting section).
- Run the freshly created server program rpcserv.exe. If a name-server is configured and running, this server will automatically plug itself into the system-wide database.
If a name-server is not running, then you will have to modify database entries by hand to include the address and name information pertaining to your server.
- The above server code can also be a client. You can edit the file G:\RPCSERV\sinsim.c and search for “::define CLIENT”. You’ll note that this line has been commented out. Undo the comments. You’ll also note that a #define DEVNAME “SINE” exists above this line. If you #define DEVNAME to be the export name you used in your exports.csv file (see step 7), the resulting executable will be a client to itself
- If an equipment name-server (ENS) is configured and running, this server will automatically plug itself into the system-wide database. If an ENS is not running, then you will have to modify database entries by hand to include the address and name information pertaining to your server. It is strongly suggested to maintain an equipment name server.