当前位置:编程学习 > JAVA >>

关于socket的挑战问题

目前小弟在开发一个SRTP与RTP媒体流互转的功能,遇到一个问题,不知哪位大侠帮小弟解决一下!

组网:

PC1------------SERVER------------PC2
voice:
|------SRTP----->|------RTP----->|    fun:1
|<------SRTP-----|<------RTP-----|    fun:2
|------SRTCP---->|------RTCP---->|    fun:3
|<------SRTCP----|<------RTCP----|    fun:4

video:
|------SRTP----->|------RTP----->|    fun:5
|<------SRTP-----|<------RTP-----|    fun:6
|------SRTCP---->|------RTCP---->|    fun:7
|<------SRTCP----|<------RTCP----|    fun:8

我的问题是:

fun:1、在SERVER侧建立一个socket,并且监听PC1的SRTP数据包,同时从另外创建的一个socket通道发送RTP包到PC2;
fun:2、在SERVER侧建立一个socket,并且监听PC2的RTP数据包,同时从另外创建的一个socket通道发送SRTP包到PC1;
fun:3、在SERVER侧建立一个socket,并且监听PC1的SRTCP数据包,同时从另外创建的一个socket通道发送RTCP包到PC2;
fun:4、在SERVER侧建立一个socket,并且监听PC2的RTCP数据包,同时从另外创建的一个socket通道发送SRTCP包到PC1;

......


可以看到,对于一个语音包来说,需要创建8个socket连接,加上视频,需要16个socket连接。

问题:
1、如果SERVER能够并发处理100个语音和视频流的功能,需要100 X 16 = 160个socket连接吗?
如果不是,那如何解决多socket的问题?

2、如果SERVER并发处理100个语音和视频流的功能,那每一个处理都要申请一个线程(线程池)?
如果不是,那如何处理?

3、当建立socket连接时,需要bind,而bind只需要对接收端口进行,那一个线程能否bind
多个?

4、是否有更好的设计方案?




补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,