受不了了,CAsyncSocket对象OnReceive()后莫名其妙地触发OnSend().
smn 2003-04-11 10:21:30 一个CAsyncSocket实现的FTP客户端,在监听连接Accept给"传送文件"连接后再根据条件写上:
AsyncSelect(FD_WRITE|FD_CLOSE);//上传时
AsyncSelect(FD_READ|FD_CLOSE);//下载时
在"传送文件"连接里的OnReceive()除了Receive(...)就没有其它控件此套接字的语句.OnSend()除了Send(...)以外就是最后一个Close();通知服务器上传完毕.
这种做法上传是没有问题的,但是在下载一个文件后,就是执行完"传送文件"连接的OnReceive()后,总是莫名其妙地接着执行OnSend()函数,我试过下载完文件后马上ShutDown()或者Close()都不行.当然我可以根据上传还是下载的标志变量来避免执行OnSend()里的函数体,但是我想知道这种错误的原因在哪里,最好的解决方法是什么,是我哪里写错了吗?
分不够的话我可以另开贴加分.