用c++开发基于tcp协议的文件上传功能

时间:2022-04-02 00:23:53

用c++开发基于tcp协议的文件上传功能

2005我正在一家游戏公司做程序员,当时一直在看《Windows网络编程》 这本书,把里面提到的每种IO模型都试了一次,强烈推荐学习网络编程的同学阅读,比 APUE 讲的更深入

    • 这是某个银行广告项目(p2p传输视频)的一部分
    • IO模型采用的阻塞模式,文件一打开就直接上传
    • 用vc 2003编译,生成win32 dll
    • 麻雀虽小五脏俱全,CSimpleSocket,CReadStream
    • dll 输出一虚类

      1. extern "C" __declspec(dllexport)
      2. ISendFileInterface * CreateSendFile()
      3. {
      4. return new CFileClient();
      5. }
    • 接口定义如下

      1. typedef struct
      2. {
      3. unsigned int    uploaded;   //已经上传的字节数
      4. bool            finished;
      5. }TransInfo,*PTransInfo;
      6. struct ISendFileInterface
      7. {
      8. virtual ~ISendFileInterface(){};
      9. //return>0:file size
      10. //return=0:zero byte file or error
      11. virtual unsigned int ChoseFile(const char *file,int type)=0;
      12. //连接服务器
      13. virtual bool Connect(const char *host,unsigned short port)=0;
      14. //阻塞调用
      15. //-1:socket 错误
      16. //0:上传完成
      17. virtual int SendFile(PTransInfo info)=0;
      18. virtual void Stop()=0;
      19. virtual const char *GetError()=0;
      20. };

相关文章