Ejemplo n.º 1
0
 ///<summary>Starts listening on the selected IP address and port.</summary>
 ///<exception cref="SocketException">There was an error while creating the listening socket.</exception>
 public void Start()
 {
     try {
         ListenSocket = new SecureSocket(Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
         ListenSocket.Bind(new IPEndPoint(Address, Port));
         ListenSocket.Listen(50);
         ListenSocket.BeginAccept(new AsyncCallback(this.OnAccept), ListenSocket);
     } catch {
         ListenSocket = null;
         throw new SocketException();
     }
 }
Ejemplo n.º 2
0
 ///<summary>Called when we're connected to the data port of the remote FTP server.</summary>
 ///<param name="ar">The result of the asynchronous operation.</param>
 private void OnPasvConnected(IAsyncResult ar)
 {
     try {
         DestinationSocket.EndConnect(ar);
         ListenSocket = new SecureSocket(IPAddress.Any.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
         ListenSocket.Bind(new IPEndPoint(IPAddress.Any, 0));
         ListenSocket.Listen(1);
         ListenSocket.BeginAccept(new AsyncCallback(this.OnPasvAccept), ListenSocket);
         Parent.SendCommand("227 Entering Passive Mode (" + Listener.GetLocalInternalIP().ToString().Replace('.', ',') + "," + Math.Floor(((IPEndPoint)ListenSocket.LocalEndPoint).Port / 256).ToString() + "," + (((IPEndPoint)ListenSocket.LocalEndPoint).Port % 256).ToString() + ").\r\n");
     } catch {
         Dispose();
     }
 }
Ejemplo n.º 3
0
 ///<summary>Initializes a new instance of the FtpDataConnection class.</summary>
 ///<param name="RemoteAddress">The address on the local FTP client to connect to.</param>
 ///<returns>The PORT command string to send to the FTP server.</returns>
 public string ProcessPort(IPEndPoint RemoteAddress)
 {
     try {
         ListenSocket = new SecureSocket(IPAddress.Any.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
         ListenSocket.Bind(new IPEndPoint(IPAddress.Any, 0));
         ListenSocket.Listen(1);
         ListenSocket.BeginAccept(new AsyncCallback(this.OnPortAccept), ListenSocket);
         ClientSocket = new SecureSocket(RemoteAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
         ClientSocket.BeginConnect(RemoteAddress, new AsyncCallback(this.OnPortConnected), ClientSocket);
         return("PORT " + Listener.GetLocalExternalIP().ToString().Replace('.', ',') + "," + Math.Floor(((IPEndPoint)ListenSocket.LocalEndPoint).Port / 256).ToString() + "," + (((IPEndPoint)ListenSocket.LocalEndPoint).Port % 256).ToString() + "\r\n");
     } catch {
         Dispose();
         return("PORT 0,0,0,0,0,0\r\n");
     }
 }
Ejemplo n.º 4
0
 public void BeginAccept(AsyncCallback callback,
                         object state)
 {
     fAcceptSocket.BeginAccept(callback, state);
 }