# Class TSocksBlockSocket

Description | Hierarchy | Fields | Methods | Properties

## Unit

blcksock

## Declaration

`type TSocksBlockSocket = class(TBlockSocket)`

## Description

Support for SOCKS4 and SOCKS5 proxy

Layer with definition all necessary properties and functions for implementation SOCKS proxy client. Do not use this class directly.

## Hierarchy

- TObject
- TBlockSocket
- TSocksBlockSocket

## Overview

### Methods

| `constructor Create;`
| `function SocksOpen: Boolean;`
| `function SocksRequest(Cmd: Byte; const IP, Port: string): Boolean;`
| `function SocksResponse: Boolean;`

### Properties

| `property UsingSocks: Boolean read FUsingSocks;`
| `property SocksLastError: integer read FSocksLastError;`
| `property SocksIP: string read FSocksIP write FSocksIP;`
| `property SocksPort: string read FSocksPort write FSocksPort;`
| `property SocksUsername: string read FSocksUsername write FSocksUsername;`
| `property SocksPassword: string read FSocksPassword write FSocksPassword;`
| `property SocksTimeout: integer read FSocksTimeout write FSocksTimeout;`
| `property SocksResolver: Boolean read FSocksResolver write FSocksResolver;`
| `property SocksType: TSocksType read FSocksType write FSocksType;`

## Description

### Methods

| `constructor Create;`

| `function SocksOpen: Boolean;`

Open connection to SOCKS proxy and if SocksUsername is set, do authorisation to proxy. This is needed only in special cases! (it is called internally!)

| `function SocksRequest(Cmd: Byte; const IP, Port: string): Boolean;`

Send specified request to SOCKS proxy. This is needed only in special cases! (it is called internally!)

| `function SocksResponse: Boolean;`

Receive response to previosly sended request. This is needed only in special cases! (it is called internally!)

### Properties

| `property UsingSocks: Boolean read FUsingSocks;`

Is `True` when class is using SOCKS proxy.

| `property SocksLastError: integer read FSocksLastError;`

If SOCKS proxy failed, here is error code returned from SOCKS proxy.

| `property SocksIP: string read FSocksIP write FSocksIP;`

Address of SOCKS server. If value is empty string, SOCKS support is disabled. Assingning any value to this property enable SOCKS mode. Warning: You cannot combine this mode with HTTP-tunneling mode!

| `property SocksPort: string read FSocksPort write FSocksPort;`

Port of SOCKS server. Default value is '1080'.

| `property SocksUsername: string read FSocksUsername write FSocksUsername;`

If you need authorisation on SOCKS server, set username here.

| `property SocksPassword: string read FSocksPassword write FSocksPassword;`

If you need authorisation on SOCKS server, set password here.

| `property SocksTimeout: integer read FSocksTimeout write FSocksTimeout;`

Specify timeout for communicatin with SOCKS server. Default is one minute.

| `property SocksResolver: Boolean read FSocksResolver write FSocksResolver;`

If `True`, all symbolic names of target hosts is not translated to IP's locally, but resolving is by SOCKS proxy. Default is `True`.

| `property SocksType: TSocksType read FSocksType write FSocksType;`

Specify SOCKS type. By default is used SOCKS5, but you can use SOCKS4 too. When you select SOCKS4, then if SocksResolver is enabled, then is used SOCKS4a. Othervise is used pure SOCKS4.

Generated by PasDoc 0.9.0 on 2012-04-23 21:38:50