急!!socket连接ftp服务器的问题!!!
急!!socket连接ftp服务器的问题!!!
我写了个利用socket上传文件的程序,在不同的网络环境中测试,其中在成都一个站点(一个宾馆里)测试时无法上传,后来检查原因时发现是socket无法连接,不过有时也能连上,但连接不上的概率很大,我已经把这台测试机上的防火墙和杀毒软件全关了问题依旧,但在这台机器上用CuteFtp可以连接并上传文件,也可以直接访问ftp站点复制文件,包括命令行方式下通过ftp命令访问,就是我的程序连接不上,只要socket一连接就报错,错误及程序如下,请高手帮我分析下原因!!!谢谢了!!
1.由于目标机器积极拒绝,无法连接。(10061)
2.由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。(10060)
上面这两个错误是轮流报,有时出第1个,有时出第2个
具体代码如下:这是我精简后的代码,只作socket连接都不行,郁闷至极,关键就是cuteftp,ftp命令,ie直接访问ftp服务器都可以
string remoteHost= "222.240.192.122 ";
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ep = new IPEndPoint(Dns.Resolve(remoteHost).AddressList[0], 21);
//s.SendTimeout = 10000; 这两句延时加不加都一样
//s.ReceiveTimeout = 10000;
try
{
s.Connect(ep);
}
catch (Exception ex1)
{
MessageBox.Show( "连接失败----> " + ex1.Message + ",----> " + ex1.Source + ",----> " + ex1.StackTrace + ",----> " + ex1.TargetSite);
return;
//throw new IOException( "Can 't connect to remote server ");
}
if (s != null)
{
s.Close();
s = null;
}
------解决方案--------------------IPEndPoint ep = new IPEndPoint(Dns.Resolve(remoteHost).AddressList[0], 21);
直接用ip试试
IPEndPoint ep = new IPEndPoint( "222.240.192.122 ", 21);