想问一下C#里用TCP协议实现一个客户端连接多个服务端怎么做

时间:2022-05-23 00:01:16
做一个程序连接到6个仪器,用来接收6个仪器上发出的数据,使用的是TCP协议,和多线程,现在是,一旦连上了某台仪器,就一直接收那台仪器的数据,貌似没有实现多线程。

10 个解决方案

#1


分别连接就是了。

#2


怎么连的第一个服务器就怎么连接第二个服务器,你就把你连接第一个服务器的代码看成一个类,这样创建这个类的多个实例,连接到不同的服务器就行了;

#3


for (int i = 0; i < dic.Count; i++)
            {
                dev = dic[i];
                
                th = new TCPListenerThread();           
                th.Device = dev;
                th.init();
                arrListener.Add(th);               


                ts = new ThreadStart(th.NetDataReceive0);
                thread = new Thread(ts);
                thread.Start();
                arrThread.Add(thread);
                th.CurThread = thread;
            }

这里有问题么?

#4


单看这代码,看不出什么来;

#5


这不是用了多线程么?

#6


真没看出啥问题

#7


不知道是不是仪器上发送的问题,再观察观察下。

#8


。。迷糊。。

#9


你这6台仪器应该串口给主机发数据,

如果是远程的则考虑用光端机收发数据(这是站在设备的角度看)。


#10


多线程接收

#1


分别连接就是了。

#2


怎么连的第一个服务器就怎么连接第二个服务器,你就把你连接第一个服务器的代码看成一个类,这样创建这个类的多个实例,连接到不同的服务器就行了;

#3


for (int i = 0; i < dic.Count; i++)
            {
                dev = dic[i];
                
                th = new TCPListenerThread();           
                th.Device = dev;
                th.init();
                arrListener.Add(th);               


                ts = new ThreadStart(th.NetDataReceive0);
                thread = new Thread(ts);
                thread.Start();
                arrThread.Add(thread);
                th.CurThread = thread;
            }

这里有问题么?

#4


单看这代码,看不出什么来;

#5


这不是用了多线程么?

#6


真没看出啥问题

#7


不知道是不是仪器上发送的问题,再观察观察下。

#8


。。迷糊。。

#9


你这6台仪器应该串口给主机发数据,

如果是远程的则考虑用光端机收发数据(这是站在设备的角度看)。


#10


多线程接收