Test Header HTML Code

ACE初学-实现文件传输

程序功能
由于接触ACE不久,本程序的功能非常简单:
1,客户端能够连接服务器端并发送数据
2,服务器端每次收到数据后给客户端发送一个反馈
3,客户端能够确认数据正确无误的传送到了服务器端并关闭连接

开发环境:VC6.0

基本数据结构设计
为了方便对文件的存取以及创建、删除等操作,封装了类QY_LocalFile。考虑到服务器端反馈的数据帧和客户端发送的数据帧携带的信息以及数据大小都不同,因此分别定义了QY_ServerFrame和QY_ClientFrame两个类。

服务器端的设计和实现
1,程序入口: QY_FileServer.cpp:创建QY_Acceptor对象,打开端口,并向Reactor注册ACCEPT_TASK。
2,QY_Acceptor 监听端口并处理连接:收到连接时生成一个新的QY_Event_Handler对象,设置好其Reactor和ACE_SOCK_Stream,并注册READ_TASK。
3,QY_Event_Handler 处理每一个客户端连接:接收客户端数据并发送反馈信息。

客户端的设计和实现
1,程序入口:QY_FileClient.cpp:创建QY_FileTransferImpl对象,连接服务器并开始传送用户指定的文件。
2,QY_FileTransfer:读取文件数据,装配好客户端数据帧并发送,确认服务器端正确接收到数据之后,开始发送下一帧,最后断开连接。

问题
开始想在客户端实现多线程传送多个文件,但是使用ACE_Thread之后,最后一个线程执行完之后出现了一些问题。

查看源代码

posted on 2010-03-28 15:39  宁静的水泡  阅读(1820)  评论(2编辑  收藏  举报

导航

Test Rooter HTML Code