新人,向各位大大求教一个 c/s实现网络传输文件的思路解决方案

新人,向各位大大求教一个 c/s实现网络传输文件的思路
公司空闲时间,组织大家做练习项目,我选了vc,题目是这样的:
因为公司内部实行ip分段管理,不坐在一起的人用ipmessage互相看不到,用邮件的话,又不允许传送太大的文件。所以要做一个c/s结构的文件传输软件。
客户端发送文件到服务器,服务器转发给   另一个客户端
语言是vc,工具是   vc++6.0,平台是windows   xp;

我负责的是客户端接受文件的部分。
因为没做过vc也没做过网络传输,很多基础知识都不知道,所以很晕...看代码也不太明白,所以,说下我初步的思路,请大家指教下。我想应该是这样的,
服务器发给我一个消息,我接收到之后弹出一个窗口,上面显示   来源(来源ip   ,名字)和要传输的文件名和大小,有一个   保存按钮,一个取消按钮,一个确认按钮(开始是灰的,下载完了是亮的)。保存就是存在一个指定的路径下,取消的话给服务器发回一个消息,告诉他操作取消了,下载完了之后,按确认关闭对话框。
问题是
1   服务器发给我一个消息的过程是怎么回事?我应该监听一个固定端口么,我如何响应这个事件?
2   服务器发给我的消息结构怎么组织比较好?(估计写服务器那家伙也不一定很明白,都是不明白才决定来学的,呵呵)我又该如何解析?

先问这两个,其他再开贴,呵呵
还有,找个些网络传输的书和代码,都是点对点的传输,或者从internet下载,能帮忙找个象我这种要求的例子么,谢谢啦

------解决方案--------------------
去网上找个名为FileTransfers项目,是点对点的传输
------解决方案--------------------
1,客户机不需要监听,创建了套接字之后就请求连接.可以让服务器接受连接请求后回发一个标志,客户机接到这个标志表明连接成功,就可以收发文件或消息了!
2,收发双方可以先约定一些协议,收到不同的命令响应不同的操作.