I have a peer-2-peer UDP based instant messenger written in VB.
All works fine ... Where I need help is in this

Consider this scenario:
A is talking to B in one window.
at this time another user C starts a conversation with A
What I do at this time is store the ip add of C and show it as a pending discussion in the same window.
A has to enter the Ip address of C or select it frm the list and start talking to C thereby disconnecting him from B

What I want to do is that, when C begins a conv with A, I want that a new wndow open up and keeping the window for B still open and active, allow A to chat with B & C in the 2 different windows simultaneously

I am not able to channel the 2 separate discussions into 2 separate windows...
Any pointers on how to do this?

how do I differentiate the data arriving at a set port on a local machine as coming from 2 diff users and pass them to 2 separate instances of a form, one dedicated to each user on the local machine.

Is there any way to read the headers of a UDP packet in Vb?