Quelqu'un pourait'il me dire pour quelle raison, dans le code suivant, plus rien ne se passe après le TClientSocket.OnConnect ?

Merci infiniment.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
program Project2;
 
uses
  Forms,
  Windows,
  Messages,
  ScktComp,
  SysUtils;
 
{$R *.res}
 
type
  TEvents = class
  public
    S: TWinSocketStream;
    procedure OnRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure OnWrite(Sender: TObject; Socket: TCustomWinSocket);
    procedure OnConnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure OnError(Sender: TObject; Socket: TCustomWinSocket;
    ErrorEvent: TErrorEvent; var ErrorCode: Integer);
  end;
 
var
  Msg : TMsg;
  Events : TEvents;
 
{Debut Server}
 
procedure TEvents.OnRead(Sender: TObject; Socket: TCustomWinSocket);
begin
  Application.MessageBox(PAnsiChar(Socket.ReceiveText), 'Received', MB_OK);
end;
 
procedure TEvents.OnWrite(Sender: TObject; Socket: TCustomWinSocket);
begin
  Application.MessageBox('^) ?', 'OnWriting', MB_OK);
end;
 
procedure TEvents.OnConnect(Sender: TObject; Socket: TCustomWinSocket);
var
  L: Integer;
  S: TWinSocketStream;
begin
  L := Socket.SendText('GET HTTP://www.google.fr/ HTTP/1.1' + #13#10 + #13#10);
  Application.MessageBox(PAnsiChar(IntToStr(L) + ' octet sended'), 'Connected', MB_OK);
end;
 
procedure TEvents.OnError(Sender: TObject; Socket: TCustomWinSocket;
    ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
  Application.MessageBox(PAnsiChar(IntToStr(ErrorCode)), 'Erreur !', MB_OK);
end;
 
 
var
  TCP: TClientSocket;
 
begin
 
  try
 
//    Application.Initialize;
//    Application.MainFormOnTaskbar := False;
//    Application.Run;
 
    TCP := TClientSocket.Create(nil);
    TCP.Host := 'www.google.fr';
    TCP.Port := 80;
    TCP.ClientType := ctBlocking; // ctNonBlocking;
    TCP.OnRead := Events.OnRead;
    TCP.OnWrite := Events.OnWrite;
    TCP.OnConnect := Events.OnConnect;
    TCP.OnError := Events.OnError;
    TCP.Open;
 
    While (GetMessage(Msg,Application.Handle,0,0)) Do DispatchMessage(Msg);
 
  finally
 
    TCP.free;
 
  end;
end.
Info:
- J'utilise CodeGear Delphi 2007 sous Windows Vista
- Si le TSocketClient et dans un Form tout va bien. Mais mon but et le threader sans avoir de fiche