Witam, mam mały problem z aplikacją typu klient-serwer. Mianowicie zacząłem zabawę z aplikacjami tego typu i pierwszy projekt jaki zrobiłem to komunikator (skorzystałem z jednego tutoriala który znalazłem w sieci). Po stworzeniu i uruchomieniu aplikacji klienta i serwera i po próbie połączenia klienta z serwerem wyskakuje błąd o treści "Socket Error # 10065 No route to host".
Oto kody programu:
SERWER:

unit serwer;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdThreadMgr, IdThreadMgrDefault, IdBaseComponent,
  IdComponent, IdTCPServer;

type
  WConnection = ^TConnection;
  TConnection = record
  Host : String[20];
  Thread : Pointer;
  end;
  TPackage = record
  UserNick,
  Txt : string[255];
  end;
  TForm1 = class(TForm)
    Memo1: TMemo;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    IdTCPServer1: TIdTCPServer;
    IdThreadMgrDefault1: TIdThreadMgrDefault;
    procedure Button1Click(Sender: TObject);
    procedure IdTCPServer1Connect(AThread: TIdPeerThread);
    procedure IdTCPServer1Execute(AThread: TIdPeerThread);
    procedure IdTCPServer1Disconnect(AThread: TIdPeerThread);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ConnectionLst: TThreadList;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

IdTCPServer1.DefaultPort:=StrToInt(Edit1.Text);
IdTCPServer1.Active:=true;
end;

procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);

var NewConnection:WConnection;
begin
GetMem(NewConnection,SizeOf(TConnection));
NewConnection.Host:=AThread.Connection.LocalName;
NewConnection.Thread:=AThread;
AThread.Data:=TObject(NewConnection);
try
ConnectionLst.LockList.Add(NewConnection);
finally
ConnectionLst.UnlockList;

end;
Memo1.Lines.Add('Polaczenie: '+NewConnection.Host+'"' + TimeToStr(Time));
end;
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var

DestThread: TIdPeerThread;
i: Integer;
DestConnection: WConnection;
Package, NewPackage: TPackage;
begin
begin
AThread.Connection.ReadBuffer (Package, SizeOf (Package));

Memo1.Lines.Add (TimeToStr(Time)+ ' - ' + Package.UserNick+ ' : '+Package.Txt);
NewPackage := Package;
with ConnectionLst.LockList do
try
for i := 0 to Count-1 do
begin
DestConnection := Items[i];
DestThread := DestConnection.Thread;
DestThread.Connection.WriteBuffer(NewPackage, SizeOf(NewPackage), True);
end;
finally
ConnectionLst.UnlockList;
end;
end;
end;
procedure TForm1.IdTCPServer1Disconnect(AThread: TIdPeerThread);
var
ActiveConnection: WConnection;
begin
begin
ActiveConnection := WConnection(AThread.Data);
try
ConnectionLst.LockList.Remove(ActiveConnection);
finally
ConnectionLst.UnlockList;
end;
FreeMem(ActiveConnection);
AThread.Data := nil;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close();
end;

end.

KLIENT:

unit Klient;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient;

type
  TPackage = record
  UserNick,
  Txt:string[255];
  end;

  TClientOnReceive=class(TThread)
  private
  ActiveP: TPackage;
  procedure Action;
  protected
  procedure Execute;
  override;
  end;
  TForm1 = class(TForm)
    Wiadomosci: TMemo;
    DoWyslania: TMemo;
    IP: TEdit;
    Nick: TEdit;
    Port: TEdit;
    Polacz: TButton;
    IdTCPClient1: TIdTCPClient;
    procedure PolaczClick(Sender: TObject);
    procedure DoWyslaniaKeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
procedure TClientOnReceive.Execute;
begin
while not Terminated do
begin
if not Form1.IdTCPClient1.Connected then
Terminate
else
try
Form1.IdTCPClient1.ReadBuffer(ActiveP, SizeOf (ActiveP));
Synchronize(Action);
except
end;
end;
end;

procedure TClientOnReceive.Action;
begin
Form1.wiadomosci.Lines.Add ('[' + ActiveP.UserNick + ']: ' + ActiveP.Txt);
end;
{$R *.dfm}

procedure TForm1.PolaczClick(Sender: TObject);
var
ClientRecive:TClientOnReceive;
begin

try
IdTCPClient1.Host:=IP.Text;
IdTCPClient1.Port:=StrToInt(Port.Text);
IdTCPClient1.Connect(10000);
ClientRecive:=TClientOnReceive.Create(True);
ClientRecive.FreeOnTerminate:=True;
ClientRecive.Resume;



except
on E: Exception do MessageDlg ('polaczenie niemozliwe: '+#13+E.Message, mtError, [mbOk], 0);
end;
end;

procedure TForm1.DoWyslaniaKeyPress(Sender: TObject; var Key: Char);
var SendPackage:TPackage;
begin
if(Key=#13) then
begin
DoWyslania.BevelOuter:=bvRaised;
SendPackage.UserNick:=Nick.Text;
SendPackage.Txt:=DoWyslania.Text;
IdTCPClient1.WriteBuffer(SendPackage,SizeOf(SendPackage),True);
dowyslania.text:='';
end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.

Bardzo proszę o jakieś wskazówki w znalezieniu błędu. Z góry dziękuję za pomoc