我在端口21上有tcplistener等待传入连接。当tcplistener收到传入请求时,我通过实例化新的Tcpclient建立控制连接,FTP命令和响应在控制通道上完成。 如果在tcplistener上有任何数据传输请求,如LIST,RETR,STOR命令,我将在输出(IP地址和端口)上建立一个新的TCpclient,由PORT命令提供。第二个Tcpclient将处理请求的数据传输。
问题:在大量文件传输期间,第一个tcpclient(控制通道)将处于空闲状态。它将在60秒内被处理\关闭。
替代方法:将一个线程附加到tcpclient,同时继续使用Thread.Sleep向tcplistener发送keep alive命令“NOOP”几秒钟,直到数据传输完成。
问题:我尝试了套接字级设置,如socket.IOCOntrol用于控制通道tcpclient,但它没有用完。如何将一个线程附加到tcpclient,发送keep live命令/或任何其他更好的建议以保持控制通道在文件传输。
此致 的Vivek