现在我用port指定了本机的地址和端口之后,我用socket打开指定的端口进行侦听。现在我要取得远端服务器目录的列表,所以就发送list命令。可我还不能确定什么时候可以接受远断的连接,因为accept()是阻塞的。我是在收到150 Opening ASCII mode data connection for /bin/ls.之后,调用accept的。可是我的系统被阻塞了。后来我在得到226 Transfer complete.之后在accept,发现有时收不到这条消息,也就无法接受到目录列表的数据了。 我的结论是:好象要正常的接受目录列表数据必须得在收到226返回之后才可以。但为什么有的时候服务器在150之后返回的是425 Can't open data connection.,我的socket是一直在端口上侦听的,怎么还有连接不到的可能呢,而且我发现过一段时间之后就可以了。而且在取得一次目录列表之后如果立即又去取得列表那肯定返回425,必须过几分钟才可以。有没有谁可以告诉我这到底是为什么啊!!!!????
我的结论是:好象要正常的接受目录列表数据必须得在收到226返回之后才可以。但为什么有的时候服务器在150之后返回的是425 Can't open data connection.,我的socket是一直在端口上侦听的,怎么还有连接不到的可能呢,而且我发现过一段时间之后就可以了。而且在取得一次目录列表之后如果立即又去取得列表那肯定返回425,必须过几分钟才可以。有没有谁可以告诉我这到底是为什么啊!!!!????