我已经开发了一对一会议,但我希望继续使用多个用户。
对于音频流,我使用DirectSound
并将字节发送到端口1300上的远程IP,对于视频流,我使用DirectX
。捕获并发送字节到端口1301
上的远程IP。
在接收线程上对一个用户来说很简单,我有一个插座女巫听1300
端口然后我知道我有声音而另一个socket
在端口1301上的一个单独的线程上监听视频。
但我的问题是:如果有三个用户,一个用户应该从其他两个用户接收视频和音频。我如何从其他两个用户接收这两个流?
它们无法到达同一个端口,因为我无法区分哪个流来自user1,哪个流来自用户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
}
}
但这仅适用于从图像发送流的一位用户。对多个用户有什么想法?