[问题] 用Qt的UDP做语音通话

楼主: googled (15357)   2016-06-05 20:56:22
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Qt
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
Qt
问题(Question):
各位大大好
想请问一下,小弟第一次用到UDP来写Socket
目前想实作一个可以语音通话的程式
在A电脑开启Server模式后
B、C...等电脑可以借由输入A电脑的IP来连线,并进行语音通话
可是有几个问题想请教一下各位大大
假设A电脑的IP是1.1.1.1、B电脑是2.2.2.2、C为3.3.3.3
我在A电脑new 一个UDP并且监听的Port假设是5555
serverSocket = new QUdpSocket();
serverSocket->bind(5555, QUdpSocket::ShareAddress |
QUdpSocket::ReuseAddressHint);
那么我B电脑则是会通过new一个UDP,并且连接到A电脑的IP
clientSocket = new QUdpSocket();
clientSocket->connectToHost("1.1.1.1", 38888);
C电脑也是同样的方式
我尝试上述的做法后,B跟C确实可以用writeDatagram传送资讯到A电脑
QByteArray data;
clientSocket->writeDatagram(data, QHostAddress::Broadcast, 38888);
可是目前的问题卡在A该怎么传送资讯到B跟C
我如果同样在A上用serverSocket->writeDatagram()
也只有A本身会收到而已@@
而且B在writeDatagram时,虽然A收的到,不过C是收不到的
我上网搜跟UDP广播有关的关键字,查到的都是Client传给Server端而已
并没有找到Server传给Client的方法
难道说UDP的Socket其实Server无法传送资讯给Client吗@@?
如果是的话那我还真的耍蠢了...
所以想请问一下各位大大,该怎么做才能让A电脑也能传送资讯给B、C
以及B再传资讯时,A跟C也都收的到
谢谢各位大大
作者: Schottky (顺风相送)   2016-06-05 21:02:00
writeDatagram 明明就可以指定收件人的 IP 和 port你用 broadcast 是想做什么?

Links booklink

Contact Us: admin [ a t ] ucptt.com