第一次使用ACE不明白的地方很多,除了参考网上的资料还有就是《C++网络编程 卷1 运用ACE和模式消除复杂性》和《ACE程序员教程》
制作ftp客户端首先需要明白的是ftp是什么东西,ftp是一种文件传输协议,使用21端口。既然他是规定好的协议,那我们只需要了解他的命令就可以了。ftp指令我不一一罗列了,只列出本次开发中需要使用的如下:
接着我们考虑这个客户端的流程是怎么样的。首先客户端需要通过21端口去请求服务器,那么就需要一个用来连接用的socket然后进行连接,ACE为我们封装了一个客户端的连接器ACE_SOCK_Connector,通过这个就可以去连接服务器了。此外还需要一个ACE_SOCK_Stream对象用来传输数据。这样我们就可以和服务建立通道通信了,代码如下
这样我们就可以在这条信道上发送指令给服务器,并接收服务器返回数据。
服务器会在客户端建立成功后发"220"指令,表示已经建立成功。
接着我们需要告诉服务器我们需要登录,于是我们告诉服务器我们