我是套接字编程的新手,对它的工作原理不太了解,这是用例,我正在开发一个 iPhone 应用程序,用户在其中流式传输来自另一台 iPhone 设备的实时音频(简而言之,多播)
到目前为止我做了什么:
我在服务器上打开了一个端口,它一直在监听来自客户端的传入数据。在 iOS 端,我实现了读取服务器上接收到的数据包并进行相应处理的方法(我使用了 GCDAsyncSocket)
我需要帮助的问题:
上述用例非常适合 2 个用户,一个将音频数据发送到服务器,另一个读取该数据以播放音频。但实际上并不总是有一个用户发起音频数据,他们可能超过 100 多个,现在当他们都向服务器发送不同的音频数据时,我如何为每个人只接收数据的听众过滤数据,我克服这个问题,在每个数据包上添加一个令牌,比如
unique_token:<ffdefa09 fedead3...... //Audio Data
但是这个过程太慢了,因为每个客户端都在监听所有的数据包,并且只处理带有分配令牌的数据包。
无论如何,我们可以建立点对点连接,通过该连接,源设备成为服务器,只向其侦听器发送数据,而不打扰其他人?