如何基于客户端-服务器端模式进行上传下载啊?

来源:百度知道 编辑:UC知道 时间:2024/05/11 17:22:03
用VC++实现,就是多台电脑作为客户端,一台电脑作为服务器,程序运行时,服务器可以向客户端上传文件,服务器也可以从客户端下载文件搜集信息!

我是菜鸟中的菜鸟,希望能给出源代码,并说说怎么调试!如果成功,定当再追加100分!
高手些,请尽可能详细点!

这个问题可以分为两个部分:
1.你需要掌握文件传输的原理以及流程
2.你需要了解socket的基本流程。

不管是服务器向客户端传 还是服务器传 都是需求不同而已,从你的需求来看 本没有服务器和客户端的区分。但是总是有一方必须先存在的。这就是说
A:listen 2000
B:listen 2001
然后A-》B B-》A都没问题
主要是双方的控制命令要定好 以及文件存放位置等等小细节。
我有个单项的版本 你要吗 传给你 文件太大 没地方放
要的话就邮件到glunoy@163.com
我当然不是小气啥的 是因为体积稍微有点那个。。嘿嘿 是我早期的作品 懒得去改了。
我不是为分来的。只不过每个人初学MFC 总是会遇到困难。。想当初的我。。哎

这个代码是比较长的...
首先要定义封包类,要包含一个封包类型(INT型就可以)
然后定义具体封包类型
比如:
#define PACKET_AUTH 0x001 //认证
#define PACKET_DATA_TRANSFER_START 0x002 //开始传输
#define PACKET_DATA 0x003 //数据包
#define PACKET_DATA_TRANSFER_END 0x004 //传输结束
#define PACKET_DATA_CRC 0x005 //数据校验
等...
然后加入CSocket类
当有任务执行时,比如服务器从客户端下载数据
服务器向客户端发送类型为“准备下载”的消息封包,客户端收到后创建一个发送线程,并向服务器发送类型为“准备好”的封包,服务器收到后创建接受线程,并向客户端发送类型为“准备好”的封包,客户端收到后线程开始工作,循环发送文件,发送完成后,向服务器发送类型为“发送完毕,并校验”封包,当服务器收到后对已接受的数据进行数据校验,然后发送类型为“任务结束”的封包到客户端,服务器和客户端释放线程,完成一次下载任务!
这种类型的代码网上有很多呢,楼主可以搜搜!

服务端在固定的端口监听,客户端主动对