Network monitoring tool

Posted on 2003-03-03
Medium Priority
Last Modified: 2010-03-31

I've started developing a network montoring tool and have a have a few questions that I am struggling on.  I would really appreciate some help.

1) There are two parts to the application:
   Network engine
   User Interface
The user interface is going to be developed in Java, I would prefer to Program the java code manually using swing without using an IDE, what are the advantages and disadvantages of this?

2) The two aspects of the tool will be connected by a predefined protocol with the IPC method using sockets.  The Network engine is written in C and the GUI in Java.  With respect to the client server model w.r.t to the server I know of the factors involving iterative and concurrent servers however, what would be the factors i should consider w.r.t the client?

3) The protocol between the two applications will be based on application layer protocol. Considering sniffed data of a LAN is captured using libpcap and processed and written to a socket.  And the GUI would continuously read from that socket and make requests to the Network engine to extract the data for the sessions going on a LAN system, and display them appropriately.  What would be the protocol between the two?  Which application layer protocol is nearest to what I am trying to develop?  I have developed one which is below, could I have it verified?
     a) Message Identifier
     b) Message Type
     c) No of strings
     d) String Length
     e) Delimited String

I would really like some assistance on this since I am developing the server using C at the moment and am looking to begin the GUI soon.


Question by:Mujtaba
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 86

Expert Comment

ID: 8060770
LVL 26

Expert Comment

ID: 8062454
Using IDE,
  1. it will be easy to locate error line,
  2. speling mistake can be avoided,
  3. Context sensitive help( easy to navigate )
  4. Auto list feaature
  5. Color coding syntaxes,

  apart from this I don't find anything useful in designing UI though they have this feature. So overall, the development will be faster & easier in using IDEs.

   Then for your other questions, I would interested in seeing other's comments. But I am wondering why you are using c & java, I think, you can achieve the same in Java itself!

LVL 86

Expert Comment

ID: 8063483
>>, I think, you can achieve the same in Java itself!

No. Low level access to packets is not possible in most cases.
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

LVL 86

Expert Comment

ID: 8063494
Funnily enough, Mujtaba, i was going to make the very opposite point ;-)

>>But I am wondering why you are using c & java, I think, you can achieve the same in C itself!

Author Comment

ID: 8063738

Thank you so much for your response, I'm extremely pleased.

Basically, I'm doing it in C and Java, because of two reasons:
1) I'm an electronic engineer therefore I have spent a lot of time using C
2) I'm not that aware of Java, therefore I have decided to use Java for developing my UI

I would prefer to program manually, then use an IDE since I am trying to learn Java and currently I have developed the basic framework using Swing of the monitoring tool.  I haven't opened up a socket yet.

Thats why I would like to know the advantages of using manual programming to justify my approach.  I have lookied into using IDE's (specifically NetBeans) however I find the code produced difficult to uinderstand for a starter in Java.

Kind Regards
LVL 86

Expert Comment

ID: 8063776
Well, producing the gui in Java will at least get you out of the problem of different windowing systems on different platforms, so in that respect, it's a good solution.

As far as IDEs are concerned, i'm no expert, as i don't use one. Using one *could* make your life easier in certain cases i'd guess, but of course they won't teach you much about Java gui layout management. The best case scenario is that a good IDE will allow you to do the layout by drag and drop, but you won't learn how the layout is composed. The worst case scenario would be that the IDE makes a dog's breakfast out of things if you don't know what you're doing and you *still* won't learn about layout management ;-)

Your alternative is to read up on layouts, draw it out with pencil and paper and code it with a text editor.

Author Comment

ID: 8063844
Thank you for your answer CEHJ

Could I request your advice on the other matters, about the protocol between the two applications.

I'm researching into other application layer protocols such as http to find the similarity between mine and the standard ones - however I am aiming for something very simple.

The data that I am capturing is,
1) Src Port
2) Dest Port
3) Src IP
4) Dest IP
5) Data portion
6) byte/packet count.

The data would arrive as a string, with the data within delimited by a " "(space) e.g. ("Src_IP" "Dest_IP" "Src_Port" "Dest_Port" etc)  

Therefore I have come up with a protocol, in in each frame there would be a header:
Message Identifier
Message Type

Message parameters:
No of strings
Length of string
Delimited string

Would do you think about this protocol?

Thank you for your help

Kind Regards

LVL 86

Accepted Solution

CEHJ earned 200 total points
ID: 8066203
Seems OK on the face of it. I know you specify you want to create an application layer protocol, but have you thought of RMI? The knowledge you gain fron using that would be reusable and will get you out of the boring business of creating protocols in the first place - you'll be able to just call a function with your data as parameters.

Author Comment

ID: 8066243
RMI as far as I can rememebr only works with both the client and server being in Java, for distributed programming - am I right?

The thing is, the protocol I'm tryin to set up is going to be fairly simple - again for learning purposes.

What kind of issues would the client have to consider ina client-server model, like the one I'm using?

Thanks for your help

Author Comment

ID: 8066438
Additional question

Could you please give an idea of how web access could be enabled to the server from thew client using Java.  For instance, the client may want to connect to the server from a browser - could you inform me of the concepts behind this? Does this involve anything along the lines of private interfaces.

Thanks for your efforts

Kind Regards

Expert Comment

ID: 9058950
This old question needs to be finalized -- accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
Post your closing recommendations!  No comment means you don't care.
LVL 35

Expert Comment

ID: 9721292
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:

Accept CEHJ's comment as answer.

Please leave any comments here within the next seven days.


EE Cleanup Volunteer

Featured Post


Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
Suggested Courses
Course of the Month13 days, 22 hours left to enroll

800 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question