Introduction

TCPMon is a utility that allows the user to monitor the messages passed along in TCP based conversation. It is based on a swing UI and works on almost all platforms that Java supports. The aim of this simple tutorial is to explain how TCPMon works and also to explain some of its features.



Structure and Dependencies

TCPMon has absolutely no dependencies on third party libraries. But some of the UI features rely on JDK 1.4 so TCPMon needs a JRE that is 1.4 or higher.



Usage Patterns



As an Explicit Intermediate

The most common usage pattern for the TCPMon is as anintermediary. It is called explicit since the client has to point to the intermediary rather than the original endpoint in order to monitor the messages. The following figure explains this concept.

Apache TCPMon_sed

In order to start the TCPMon in this configuration one has to provide the host name and the port for the listener in the admin screen. See image below.

Apache TCPMon_ui_02

Pressing the 'add' button opens up a new tab that allows the messages to be seen as in the following screen

Apache TCPMon_java_03

At this point the requester should point to the listener port of the TCPMon instead of the original endpoint. Let us understand this with an example:

Say all messages passed between www.apache.org needs to be monitored.

Step 1 - Add a listener with host as www.apache.org and port as 80. Set the listener to port 8080 which may be any unused port in the local machine

Apache TCPMon_sed_04

Step 2 - Point the browser to localhost:8080 instead of www.apache.org.

Apache TCPMon_java_05

Once the messages start flowing they can be seen in the relevant tab as seen below.

Apache TCPMon_java_06

The bottom controls allow the messages to be XML formatted (useful in debugging Web services), save and resend the messages, and also to switch the layout of the message windows.

Apache TCPMon_java_07



As a Request Sender for Web Services

TCPMon can also be used as a request sender for Web services. The request SOAP message can be pasted on the send screen and then sent directly to the server.

Apache TCPMon_网络_08



As a Proxy

TCPMon can act as a proxy. To start the TCPMon at proxy mode, just select the proxy option from the radio buttons. When acting as a proxy, TCPMon only needs the listener port to be configured.

Apache TCPMon_java_09



Advanced Settings



Slow Connection Simulation

TCPMon can simulate a slow connection, in which case the delay and the bytes to be dropped can be configured. This is specially useful in testing Web services.

Apache TCPMon_网络_10



HTTP Proxy support

If HTTP proxy support is required then that can also be set on the admin screen.



Conclusion

TCPMon is a simple and easy to use tool that has many benefits when developing message driven applications. It is particularly useful in developing Web services