不确定下面的部分代码是否有帮助,但我们遇到的问题只发生在尝试将FTP数据传输到FTP服务器的一些客户端计算机上。
我们正在寻找网络跟踪并试图找到这些机器的任何独特之处。
以下是我们的代码停止的位置:=> listening_sock.Accept();
//region Try to bind to an available data port
System.Net.IPEndPoint localEP = new IPEndPoint(IPAddress.Parse(sIPAddr), (dataPortStart == 0 ? 0 : GetFreePort(dataPortStart, dataPortEnd)));
listening_sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listening_sock.Bind(localEP);
Log.WriteLine("Listening sock bound to IP Address:" + localEP.Address.ToString() + " on port " + localEP.Port.ToString());
//port 20
if (data_sock != null) // already connected (always so if passive mode)
return;
data_sock = listening_sock.Accept(); // Accept is blocking
listening_sock.Close();
listening_sock = null;
这里我们可以看到send port命令成功(Active FTP)但服务器响应425:
我最好的选择是防火墙。我也在检查。
谢谢
答案 0 :(得分:0)
默认情况下会创建Socket
阻止。所以Socket.Accept
确实应该阻塞,直到收到连接请求。
我认为问题不在代码中,但请求实际上没有,因为: