Servidor proxy usando Indy

Eu sou novo na Indy e quero criar um servidor proxy simples com ele. Esta é uma biblioteca bastante grande, e eu simplesmente não sei por onde começar. Quando o cliente se conecta ao servidor, o OnExucute é acionado e recebe a conexão do cliente como parâmetro (AContext.Connection).

Eu quero fazer o seguinte:

[client connection] := AContext.Connection
read host/port from [client connection]
[remote connection] := connect to host/port
while both connections alive:
  if data available in [client connection]:
    read data from [client connection]
    write data to [remote connection]
  if data available in [remote connection]:
    read data from [remote connection]
    write data to [client connection]

A questão é que funções devo usar para isso? Há simIOHandler propriedade no objeto Connection com toneladas deles. Por favor ajude.

Estou usando o Indy que acompanha o Delphi2010.

questionAnswers(1)

yourAnswerToTheQuestion