Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Multiple TCP clients within a single app?

Posted on 2010-08-12
3
Medium Priority
?
406 Views
Last Modified: 2012-06-21
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!
0
Comment
Question by:JasonWilliam
[X]
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
  • 2
3 Comments
 
LVL 3

Accepted Solution

by:
arthurmnev earned 2000 total points
ID: 33422463
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
 
LVL 3

Expert Comment

by:arthurmnev
ID: 33422587

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
 

Author Comment

by:JasonWilliam
ID: 33425455
Yep.  That's the ticket.  Thanks Art!
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Since .Net 2.0, Visual Basic has made it easy to create a splash screen and set it via the "Splash Screen" drop down in the Project Properties.  A splash screen set in this manner is automatically created, displayed and closed by the framework itsel…
Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
Suggested Courses

715 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