由于用的是软交换,交换机只提供了1个端口5000用于接收和发送数据流。 
我现在客户端,用1个端口3500以线程的方式侦听交换机5000端口的远程对方视屏流,再用1个端口4000发送本地视屏流数据给交换机的5000端口。交换机只提供了1个端口进行数据收发。这时候问题就来了,如果我发送了1段视屏后,就再也接不到对方的视屏数据,这个问题我知道是因为本地4000端口已经与交换机5000端口建立了连接,本地端口3500端口和交换机5000端口断开所致。但是还没找到很好的办法解决。 我现在想到个办法就是设置1个BUFFER,接收数据流时候将数据存入BUFFER中,显示视屏的时候从BUFFER读数据,每隔一段时间暂停线程1会,释放侦听socket和交换机的5000端口绑定使交换机5000端口空出来,然后再用socket发送一部分视屏数据给交换机端口5000,以此循环。虽然能解决端口冲突问题,但是会有一定延迟。想问下各位还有啥好的方法吗?

解决方案 »

  1.   

    用同一个socket和交换机链接
    得到一个outputStream和一个inputStream
    放到两个线程中
    一个专门收一个专门发
      

  2.   

    问一下楼主,我也在用jmf做个视频聊天的东西,但是,jmf要求视频传输端口必须为偶数,但是我发送的数据经过路由器转发之后端口被路由器更改了,更改之后的端口未必是偶数了,你遇见过这种情况吗,请问该怎么解决?