Chinaunix

标题: 请问单线程怎样实现接收多路SOCKET数据流(视频码流)并转发? [打印本页]

作者: ch_chosen    时间: 2012-08-02 15:13
标题: 请问单线程怎样实现接收多路SOCKET数据流(视频码流)并转发?
RT_RT_RT_RT
作者: aychxm    时间: 2012-08-02 15:20
使用select或者那个啥
作者: kunson    时间: 2012-08-02 15:25
回复 2# aychxm


兄台给一个实例或者学习连接吧。

我以前使用fork,后来被批评为开销太大了。楼主问的也是我想学习的。
作者: ch_chosen    时间: 2012-08-02 15:50
同求,select和epoll想了半天也不知道怎么实现这种每一路都不停来数据的情况 回复 2# aychxm


   
作者: inet_addr    时间: 2012-08-02 16:21
恰恰单线程, 编程会简单

   1.  先读一遍
   select(fdn, &readset, 0, 0, 0)
   {
      while(fd in readset)
      {
         n = read -> buffer[fd];
         bufoff[fd] += n;
      }
    }

  2. 再写一遍
  select(fdn, 0, &writeset, 0, 0)
  {
     while(fd in fdset)
     {
         n = write(sock[你的目的地], buffer[fd]);
         buffoff[fd] -= n;
     }
  }
作者: safedead    时间: 2012-08-02 16:23
ch_chosen 发表于 2012-08-02 15:13
RT_RT_RT_RT


别告诉我你要转发H.323组播视频流
那个玩意的程序很不好写
作者: ch_chosen    时间: 2012-08-02 17:05
回复 5# inet_addr
谢谢,再仔细想一下

   
作者: ch_chosen    时间: 2012-08-02 17:06
回复 6# safedead
我转的是H264码流


   
作者: tempnamett    时间: 2012-08-02 22:31
回复 8# ch_chosen

live555
   
作者: xinglp    时间: 2012-08-03 14:09
多线程简单稳定充分利用多核处理器




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2