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); }
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()"); }
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)"); }
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)"); }