Solved

Multiple TCP clients within a single app?

Posted on 2010-08-12
3
400 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
  • 2
3 Comments
 
LVL 3

Accepted Solution

by:
arthurmnev earned 500 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

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

This tutorial demonstrates one way to create an application that runs without any Forms but still has a GUI presence via an Icon in the System Tray. The magic lies in Inheriting from the ApplicationContext Class and passing that to Application.Ru…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

707 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now