2005我正在一家游戏公司做程序员,当时一直在看《Windows网络编程》 这本书,把里面提到的每种IO模型都试了一次,强烈推荐学习网络编程的同学阅读,比 APUE 讲的更深入 这是某个银行广告项目(p2p传输视频)的一部分

  • IO模型采用的阻塞模式,文件一打开就直接上传
  • 用vc 2003编译,生成win32 dll
  • 麻雀虽小五脏俱全,CSimpleSocket,CReadStream
  • dll 输出一虚类
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
extern "C" __declspec(dllexport)
ISendFileInterface * CreateSendFile()
{
	return new CFileClient();
}
接口定义如下
typedef struct
{
	unsigned int
	uploaded;
	//已经上传的字节数
	bool
	finished;
}TransInfo,*PTransInfo;

struct ISendFileInterface
{
	virtual ~ISendFileInterface(){};
	//return>0:file size
	//return=0:zero byte file or error
	virtual unsigned int ChoseFile(const char *file,int type)=0;
	//连接服务器
	virtual bool Connect(const char *host,unsigned short port)=0;
	//阻塞调用
	//-1:socket 错误
	//0:上传完成
	virtual int SendFile(PTransInfo info)=0;
	virtual void Stop()=0;
	virtual const char *GetError()=0;
};

代码下载:https://github.com/lutaf/uploadfile