Esempio n. 1
0
        internal FtpResponse Connect(int timeout,
                                     string server,
                                     int port)
        {
            CheckDisposed();

            NSTrace.WriteLineVerbose("CC: -> Connect");
            if (null == server)
            {
                throw new ArgumentNullException("server");
            }

            if (port < IPEndPoint.MinPort || port > IPEndPoint.MaxPort)
            {
                throw new ArgumentOutOfRangeException("port", "Value, specified for the port, is out of valid range.");
            }

            SetProgress(true);
            try
            {
                _socket.ConnectTimeout = timeout;

                string msg = string.Format("CC: Connecting (timeout: {0}, srv: {1}:{2})...", timeout, server, port);
                NSTrace.WriteLineInfo(msg);

                _socket.Connect(server, port);

                msg = string.Format("CC: Reading response...");
                NSTrace.WriteLineInfo(msg);

                _response = _reader.ReadResponse(timeout);

                NSTrace.WriteLineVerbose("CC: <- Connect");
            }
            catch (SocketException e)
            {
                CheckDisposed();
                CheckTimeoutException(e);
                throw;
            }
            catch (Exception)
            {
                CheckDisposed();
                throw;
            }
            catch
            {
                CheckDisposed();
                throw;
            }
            finally
            {
                SetProgress(false);
            }
            OnResponseReceived();
            return(_response);
        }
Esempio n. 2
0
 public SocketEx()
 {
     this._opState        = OpState.Finished;
     this._recvTimeout    = -1;
     this._sendTimeout    = -1;
     this._acceptTimeout  = -1;
     this._connectTimeout = -1;
     NSTrace.WriteLineVerbose("-> SocketEx()");
     this._baseSocket = new Socket_None();
     this.Init();
     NSTrace.WriteLineVerbose("<- SocketEx()");
 }
Esempio n. 3
0
 internal SocketEx(SocketBase baseSocket)
 {
     this._opState        = OpState.Finished;
     this._recvTimeout    = -1;
     this._sendTimeout    = -1;
     this._acceptTimeout  = -1;
     this._connectTimeout = -1;
     NSTrace.WriteLineVerbose("-> SocketEx(handle)");
     if (baseSocket == null)
     {
         NSTrace.WriteLineError("EX: SocketEx(handle), handle == null. " + Environment.StackTrace);
         throw new ArgumentNullException("baseSocket");
     }
     this._baseSocket = baseSocket;
     this.Init();
     NSTrace.WriteLineVerbose("<- SocketEx(handle)");
 }
Esempio n. 4
0
 public SocketEx(BytesRoad.Net.Sockets.ProxyType proxyType, string proxyServer, int proxyPort, byte[] proxyUser, byte[] proxyPassword)
 {
     this._opState        = OpState.Finished;
     this._recvTimeout    = -1;
     this._sendTimeout    = -1;
     this._acceptTimeout  = -1;
     this._connectTimeout = -1;
     NSTrace.WriteLineVerbose("-> SocketEx(full)");
     if (proxyType == BytesRoad.Net.Sockets.ProxyType.None)
     {
         this._baseSocket = new Socket_None();
     }
     else if (BytesRoad.Net.Sockets.ProxyType.Socks4 == proxyType)
     {
         this._baseSocket = new Socket_Socks4(proxyServer, proxyPort, proxyUser);
     }
     else if (BytesRoad.Net.Sockets.ProxyType.Socks4a == proxyType)
     {
         this._baseSocket = new Socket_Socks4a(proxyServer, proxyPort, proxyUser);
     }
     else if (BytesRoad.Net.Sockets.ProxyType.Socks5 == proxyType)
     {
         this._baseSocket = new Socket_Socks5(proxyServer, proxyPort, proxyUser, proxyPassword);
     }
     else if (BytesRoad.Net.Sockets.ProxyType.HttpConnect == proxyType)
     {
         this._baseSocket = new Socket_HttpConnect(proxyServer, proxyPort, proxyUser, proxyPassword);
     }
     else
     {
         string message = string.Format("Proxy type is not supported ({0}).", proxyType.ToString());
         NSTrace.WriteLineError("EX: " + message + " " + Environment.StackTrace);
         throw new NotSupportedException(message);
     }
     this.Init();
     NSTrace.WriteLineVerbose("<- SocketEx(full)");
 }