Building an Internet Access Control Application - The Protocol
(Page 2 of 4 )
The indy components that we will be using make it easy to create a custom protocol. We will be using two components, called idCmdTCPClient and idCMdTCPServer, that provide the medium for us to create our own communication protocol. Because we’ve looked at the requirements for the applications involved, we already have an idea of how the communication should go.
First, the Client Application contacts the server application and connects, giving its name. For example, if the client computer is called Joe Blogg, then it will try to give that name to the server application. At this point the server should actually check to see if the name already exists and then send an appropriate error message back. This is of course dependent on whether you are actually going to use this application for the purpose that it is designed (to control access to the Internet), in which case all the computers that are connected to the network will already have unique names. Also with the name is included another piece of status information, which tells the server that the connecting client is available. So the total sum of the communication sent by the client should be something like this:
computername status:free
The second step involves the Server. Since the communication from the client will be two parts (name and status), the server takes that communication and breaks it up into the individual two parts. At the same time the server takes the IP address of the connecting client as well as the time of connecting. So something like this takes place on the server:
server: name OK
status OK
If not OK then
send appropriate message to client and disconnect
Finally, once the connection is successful then all communication from here on in will be initiated by the server application. For example, to tell a client to grant access for ten minutes, the server would send the following communication:
activate:workstation@10
The above statement says: activate the computer that has the name "workstation" for ten minutes. The client application receives this string, breaks it up into three pieces, and gives it to the relevant functions for further processing.
Next: The Server Application >>
More Delphi-Kylix Articles
More By David Web