Multiple TCP clients within a single app?

Hey guys.  Can someone direct me to some sample code that demonstrates how to initiate multiple TCP clients within a single application?  Each client needs to connect with a different server, but I need to manage all of it within a one VB.Net app.

Thanks!
JasonWilliamAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

arthurmnevCommented:
Here is one example:http://www.eggheadcafe.com/articles/20020323.asp

The example shows the use of TCPClient class -- to create multiple connections, you'd create multiple instances of this class and connect those to multiple end points.

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
arthurmnevCommented:

http://msdn2.microsoft.com/en-us/library/system.net.sockets.tcpclient.beginconnect.aspx

http://msdn2.microsoft.com/en-us/library/system.net.sockets.networkstream.beginread.aspx

This might get a little confusing if you don't fully understand the concept of
1) Async operations
2) Function pointers or delegates

Function pointer, is, essentially a variable that holds a reference to a function. The variable can be passed around and when executed it will execute the function to which it points.

Async operations in .net are usually based on the concept of passing a delegate / function pointer to a system managed function. When the system detects a condition, it triggers execution of your function.

To that end, when you begin doing BeginRead on a data stream from tcp client, you are telling the .net framework to execute your function when data shows up. This is important to understand if you have multiple connection streams all sending you the data..




' From http://social.msdn.microsoft.com/forums/en-US/netfxcompact/thread/d6156c86-6efc-429a-9ba5-510f5fba4c5a/
Public Class IQPSocket

    Dim IQPSocket As System.Net.Sockets.TcpClient
    Dim IQPStream As System.Net.Sockets.NetworkStream
    Dim DataBuffer(1024) As Byte
    Dim ByteRead As Integer

   Dim numberOfBytes As Integer



    Dim evtConnEstb As New AsyncCallback(AddressOf onConnectionEstablished)
    Dim evtDataArrival As New AsyncCallback(AddressOf DataProcessing)

    Dim IQPServer As String = My.Settings.iqp_svr
    Dim IQPPort As String = My.Settings.iqp_port

    Sub New()

        IQPSocket = New System.Net.Sockets.TcpClient

        ' IQPSocket.BeginConnect(IQPServer, IQPPort, evtConnEstb, Nothing)

         IQPSocket.Connect(IQPServer, IQPPort)

        Debug.Print("Conn:" & IQPSocket.Connected)
        IQPStream = IQPSocket.GetStream

        IQPStream.BeginRead(DataBuffer, 0, 1024, evtDataArrival, Nothing)

    End Sub


    Public Sub DataProcessing(ByVal dr As IAsyncResult)
        Debug.Print("DataArrival")

        numberOfBytes = IQPStream.EndRead(dr)

        ' At this instant DataBuffer variable is filled with the received data
        IQPStream.Flush()

        IQPStream.BeginRead(DataBuffer, 0, 1024, evtDataArrival, Nothing)
    End Sub

    'Public Sub onConnectionEstablished(ByVal dr As IAsyncResult)
    '    Debug.Print("Connect Test Eventzd")
    '
    'End Sub
'  ============================================

Open in new window

0
JasonWilliamAuthor Commented:
Yep.  That's the ticket.  Thanks Art!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.