Как получить несколько потоков от разных пользователей на видеоконференции?

Я разработал индивидуальную конференцию, но я хочу выступить с несколькими пользователями. Для аудио потока я использую DirectSound и отправить байты на удаленный IP-порт 1300 и для видеопотока, который я использую DirectXЗахват и отправка байтов на удаленный IP-порт 1301,

В получающем потоке это просто для одного пользователя, у меня есть сокет, который слушает 1300 порт, а затем я знаю, что у меня есть звук и другой socket которые слушают в отдельном потоке на порте 1301 для видео.

Но мой вопрос: если есть три пользователя, один пользователь должен получать видео и аудио от двух других пользователей. Как я могу получить эти два потока от двух других пользователей?

Они не могут прибыть на один и тот же порт, потому что я не могу отличить, какой поток от пользователя 1, а какой от пользователя 2.

Например, это мой receiveVideoThread для одного пользователя:

public void receiveVideoThread()
{
IPEndPoint ie = new IPEndPoint(IPAddress.Any, 0);

while (true) //Thread activity
{

byte[] data = videoSR.Receive(ref ie); //We wait for video image on port 1301,videoSr is the UdpClient

Image x = Utilitare.ClsUtilitare.byteArrayToImage(data);

pictureBox1.Image = x; //set image received to the picture Box
        }
    }

Но это только для одного пользователя, который посылает мне поток из изображений. Любая идея для нескольких пользователей?

0 ответов

Другие вопросы по тегам