Solved

Connect to multiple Tcp Servers

Posted on 2010-09-20
2
497 Views
Last Modified: 2012-06-27

Hello.

I want to connect to multiple TCP/IP servers at the same time.(Different IPs, same port)

When there is one server  my code is like:
TcpClient = new TcpClient()
client.GetStream().BeginRead(readBuffer, 0, 1024, newAsyncCallback(GetFromServer), null);

Now for multiple servers do i need to create  a TcpClient list ? Do i need to worry about thread safety ?

Frankly i could not decide how to design.
0
Comment
Question by:parabellum
  • 2
2 Comments
 
LVL 16

Accepted Solution

by:
kris_per earned 500 total points
ID: 33715483
To connect to multiple servers at the same time, you need to create multiple TcpClient instances in a thread.

Folllowing is a model using threads:
public class ServerIno
        {
            public string Address;

            // add any other server info here
        }

        [STAThread]
        static void Main()
        {
            List<ServerIno> listServerInfo = new List<ServerIno>();
            listServerInfo.Add(new ServerIno { Address = "10.10.10.10" });

            for(int s=0; s < listServerInfo.Count; s++)
            {
                Thread t = new Thread(DoWork);
                t.Start(listServerInfo[s]);
            }
        }

        public static void DoWork(object data)
        {
            ServerIno si = (ServerIno)data;

            int portNumber = 25; // use the correct port number here
            TcpClient client = new TcpClient(si.Address, portNumber);

            // use client object to send messages to server and get response from server here
        }

Open in new window

0
 
LVL 16

Expert Comment

by:kris_per
ID: 33715518

Above sample doesn't need to do anything special for thread safety. But depending on further requirement (that will make threads to update a shared variable), then you need to consider thread-safetry issues.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone 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

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

820 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