zoukankan      html  css  js  c++  java
  • 用c++开发基于tcp协议的文件上传功能

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

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

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

        1. typedef struct
        2. {
        3.     unsigned int    uploaded;   //已经上传的字节数
        4.     bool            finished;
        5. }TransInfo,*PTransInfo;
        6.  
        7.  
        8. struct ISendFileInterface
        9. {
        10.  
        11. virtual ~ISendFileInterface(){};
        12.      //return>0:file size
        13.     //return=0:zero byte file or error
        14. virtual unsigned int ChoseFile(const char *file,int type)=0;
        15.  
        16.  
        17. //连接服务器
        18. virtual bool Connect(const char *host,unsigned short port)=0;
        19.  
        20.  
        21. //阻塞调用
        22. //-1:socket 错误
        23. //0:上传完成
        24. virtual int SendFile(PTransInfo info)=0;
        25.  
        26.  
        27. virtual void Stop()=0;
        28.  
        29.  
        30. virtual const char *GetError()=0;
        31.  
        32. };
  • 相关阅读:
    Spring Cloud的小改进(五)
    国内最火的10款Java开源项目,都是国人开发,CMS居多
    创建服务的注册与发现 Eureka (四)
    Eureka的的概述(三)
    sourcetree 跳过首次登录
    基于IDEA工具 lombok 的使用
    面试总结
    Spring Cloud的概述(二)
    微服务的概述(一)
    原子性 CAS算法
  • 原文地址:https://www.cnblogs.com/timssd/p/4735426.html
Copyright © 2011-2022 走看看