• 1. 当点击yp上的channel时,peercast收到 WM_COPYDATA 消息,WM_COPYDATA被用于在应用程序之间传递消息。
    在该消息的处理中依次调用:
     ChanInfo info;
     servMgr->procConnectArgs((char *)pc->lpData,info);
     chanMgr->findAndPlayChannel(info,false);
    2.调用 procConnectArgs(char *str,ChanInfo &info);
    str 是输入参数, info是输出参数。 例如当点击“FM PORT 79.0MHz”是str的值 0x0012d39c "6972C218982A533EA7582FCA9F120804?tip=58.91.207.151:7144
    该值由 ChanenlID IP port组成。
    在函数调用chanMgr->addHit(h,info.id,true); 将此主机作为当前的chanhit。在此函数的调用中,如果CHanMgr中没有Chanhitlist则要生成他。在ChanMgr中存在一个
    Chanhitlist的链表。
    3.调用findAndPlayChannel(info,false)
    根据Chaninfo在ChanMgr中查找是否存在对应的channel,如果没有则要new一个channel
    void PeercastSource::stream(Channel *ch)中查找chanhit,找到chanhit后调用connectFetch,peercast连接到chanhit。
    4.调用 chanMgr->playChannel(ch->info);
    将播放器用的信息写入play.pls文件中
    "http://localhost:7144/stream/6972C218982A533EA7582FCA9F120804.ogg"

    5.在playChannel中,最后调用 sys->executeFile(fname);启动播放器播放视频。