Member 13174859 Ответов: 2

Один tcpclient подключен к нескольким серверам


Я хочу подключить клиентское приложение Tcp к прослушивателю нескольких сокетов.
мой слушатель сокета-это устройство arduino с esp8266, и оно готово
но я не знаю, как использовать один tcpclient для подключения всех моих прослушивателей сокетов и могу сразу отправлять или получать данные, просто отправляя и получая какую-то строку типа "9L", " 9H"
надеюсь, что вы, ребята, сможете мне помочь, я начинаю в C#
спасибо всем

Что я уже пробовал:

using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading.Tasks;
using System.Threading;


class Program
{
    int port = 80;

    static void Main(string[] args)
    {
        Program program = new Program();
        program.ClientMain();
    }
    public void ClientMain()
    {
        IPEndPoint ip = new IPEndPoint(IPAddress.Parse("192.168.4.19"), port);
        Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        client.Connect(ip);
        new TcpListener(client);
        
    }

   
   
}
public class TcpListener
{
    Thread inThread, outThread;
    NetworkStream stream;
    StreamReader reader;
    StreamWriter writer;
    public TcpListener(Socket client)
    {

        stream = new NetworkStream(client);
        reader = new StreamReader(stream);
        writer = new StreamWriter(stream);
        inThread = new Thread(new ThreadStart(inLoop));
        inThread.Start();
        outThread = new Thread(new ThreadStart(outLoop));
        outThread.Start();        
    }
    public void inLoop()
    {
        while (true)
        {
            String s = reader.ReadLine();
            Console.WriteLine("server:" + s);           
        }
    }

    public void outLoop()
    {
        while (true)
        {            
            writer.WriteLine(Console.ReadLine());
            writer.Flush();            
        }
    }

}

2 Ответов

Рейтинг:
0

Wessel Beulink

Здесь уже есть учебник на сайте: [Введение-в-TCP-клиент-сервер-в-C]

Если вы прочитаете пример и сделаете его примером, вы сможете сделать это в своем собственном коде.


Гудлак :)


Member 13174859

На самом деле я не знаю, где я должен установить поток внутри моего кода, чтобы запустить второй или более сервер спасибо всем

Рейтинг:
0

Arvind Zamakia

я думаю, что вы можете использовать

SignalR
[^]