我有一个用Visual 2008 / C# / .Net 3.5框架创建的FTP工具。
该工具连接5个不同的FTP服务器和下载文件,没有任何问题。但是,同一工具与另一个FTP服务器(xxx)连接时,连接将失败。我检查了客户端和服务器端的防火墙异常,此IP未被过滤。但是,我可以通过FileZilla / Internet / windows连接到xxx服务器,在端口21上具有相同的凭据,它允许我查看和下载文件。下面是进行FTP连接的代码。任何帮助都将不胜感激。
public void Connect(string server, string user, string pass)
{
main_sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
main_ipEndPoint = new IPEndPoint(Dns.GetHostEntry(server).AddressList[0], 21); // returning correct IP
}
catch
{
main_ipEndPoint = new IPEndPoint(Dns.GetHostAddresses(server)[0], 21);
}
try
{
main_sock.Connect(main_ipEndPoint); // failing at this line.
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
return;
}错误信息:
{System.Net.Sockets.SocketException:连接尝试失败是因为连接方在一段时间后没有正确响应,或者建立连接失败是因为连接主机未能响应123.192.122.1XX:21。
错误代码: 10065
发布于 2014-06-07 03:49:19
错误10065不是凭据问题。这是TCP协议错误。它通常意味着无法到达主机。它发生在建立连接之前(甚至在交换凭据之前)。可能是超时或防火墙问题。
您能否验证用于连接的IP地址(即main_ipEndPoint)是否与其他FTP客户端获得的IP地址相匹配?您应该能够在FTP客户端日志中看到它。或者您可以将IP地址直接输入到FileZilla (等)中,看看它是否可以连接。
https://stackoverflow.com/questions/24090191
复制相似问题