NetworkProxy.h
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:1k
源码类别:

P2P编程

开发平台:

Visual C++

  1. #pragma once
  2. #include "CriticalSection.h"
  3. #include "TCPConnWrapper.h"
  4. using namespace gaov::chaos; 
  5. #define NETSTUB_LISTENPORT 11668
  6. enum{
  7. MSG_REQUEST = 0,
  8. MSG_GETDATA = 1,
  9. MSG_STOP = 2,
  10. MSG_SENDMSGTOSHOW = 3,
  11. };
  12. class NetworkProxy
  13. {
  14. public:
  15. NetworkProxy();
  16. virtual ~NetworkProxy();
  17. // 开始下载这个频道
  18. bool Request(
  19. LPCTSTR url // in, 要播放的文件
  20. );
  21. // 停止下载当前频道
  22. void Stop();
  23. // 发送要显示的消息给本地进程
  24. void SendMsgToShow(
  25. LPCTSTR msg,  // in, 要显示的信息
  26. const UINT len // in, 要显示的消息的长度
  27. );
  28. // 获取数据,可能得到普通Sample或者MediaType(参考struct SampleHeader的注释)
  29. // 返回值:>=1 表示成功;0表示暂时没有数据;<=-1 表示错误
  30. int GetData(
  31. SampleHeader& header, // out, 数据头
  32. PBYTE& pData, // out, 存储数据的缓冲区
  33. const UINT maxSize, // in, 缓冲区的长度
  34. const bool bAudio, // in, 获取音频还是视频
  35. const bool bKeySample // in, 是否寻找关键帧
  36. );
  37. private:
  38. /// for normal use
  39. TCPClient localTcp;
  40. CriticalSection msgLock;
  41. bool bInited;
  42. bool _Init();
  43. };