Babiiii Ответов: 2

Как сделать несколько клиентов?


Добрый день, я занимался проектом серверного клиента TCP Network Stream. Этот проект может просматривать рабочий стол клиента на сервере. Я хотел сделать еще один клиент, который будет просматривать с сервера

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

public partial class viewclient : Form
    {
        private readonly int port;
        private TcpClient client;

        //2nd Client
        private TcpClient client2;



        private TcpListener server;
       
        private NetworkStream mainStream;
        private NetworkStream mainStream2;

        private readonly Thread Listening;
        private readonly Thread GetImage;

        

        public viewclient(int Port)
        {
            port = Port;
           
            client = new TcpClient();
            client2 = new TcpClient();

            Listening = new Thread(StartListening);
            GetImage = new Thread(ReceiveImage);

            InitializeComponent();
        }

        private void StartListening()
        {
            while (!client.Connected)
            {

                server.Start();
                client = server.AcceptTcpClient();
                client2 = server.AcceptTcpClient();
            }
            GetImage.Start();
        }


        private void StopListening()
        {
            server.Stop();
            client = null;
            client2 = null;
            if (Listening.IsAlive) Listening.Abort();
            if (GetImage.IsAlive) GetImage.Abort();
        }

        private void ReceiveImage()
        {
            BinaryFormatter binFormatter = new BinaryFormatter();
            while (client.Connected)
            {

                mainStream = client.GetStream();
                mainStream2 = client2.GetStream();
                pictureBox1.Image = (Image)binFormatter.Deserialize(mainStream);
                pictureBox2.Image = (Image)binFormatter.Deserialize(mainStream2);

            }
        }


        private void ReceiveImage1()
        {


            BinaryFormatter binFormatter = new BinaryFormatter();
            while (client2.Connected)
            {
                mainStream = client2.GetStream();
                pictureBox2.Image = (Image)binFormatter.Deserialize(mainStream);
            }

        }




        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            server = new TcpListener(IPAddress.Any, port);
            
            Listening.Start();

        }

        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            base.OnFormClosing(e);
            StopListening();
        }

2 Ответов

Рейтинг:
1

RickZeeland

Может быть, это будет соответствовать вашим потребностям: Приложение Для Удаленного Рабочего Стола Windows[^]