在进行Port模式的文件传输的时候
我用Socket socket = new Socket(Internet,Stream,TCP)(记不清具体怎么写的了),但是就是上述协议吧
然后socket.Connet(IPEndPoint)
然后就出现上述错误,郁闷啊
但是用VC++版本的Ftp服务器就没有问题啊
换了几个C#版本的源码老是出现这个问题
请问这是什么原因造成的呢
是不是C#版本和VC版本的有什么差异啊?需要怎么设置呢

解决方案 »

  1.   

    应该不是防火墙的问题,因为其他好多Ftp服务器都可以的
    socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                        try
                        {
                            socket.Connect(m_pDataConEndPoint);
                        }
                        catch (System.Exception e)
                        {
                            Console.Write(e.ToString());
                        }  
    m_pDataConEndPoint保存了远端的Ip地址和端口号  
      

  2.   

    是不是ftp被动与主动模式设置的关系?
      

  3.   

    应该双方都是Port模式的,会不是是异步通信的问题呢?
    我看一个VC++版本的Ftp服务器源码是采用异步通信类实现的
    但是C#版本的Socket的 Connect方法是同步通信
    会不会是这个原因呢?