日期:2014-05-19  浏览次数:20818 次

急!!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);