Как получить несколько потоков от разных пользователей на видеоконференции?
Я разработал индивидуальную конференцию, но я хочу выступить с несколькими пользователями. Для аудио потока я использую 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
}
}
Но это только для одного пользователя, который посылает мне поток из изображений. Любая идея для нескольких пользователей?