Newsgroups : Borland : borland.public.delphi.internet.winsock : 2006 May : TServerSocket.OnClientRead no fired
| Subject: | TServerSocket.OnClientRead no fired |
| Posted by: | "George Wei" (nobo..@yahoo.com) |
| Date: | 14 May 2006 19:55:11 |
Dear all,
I'm using Delphi 6 and try to use TServerSocket and TClientSocket in my
application. The test code is as follows:
//----Code of server side----
procedure TServerForm.FormCreate(Sender: TObject);
begin
with ServerSocket1 do
begin
Close;
Port := 49536;
ServerType := stNonBlocking;
Open;
end;
end;
procedure TServerForm.ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Memo1.Lines.Add('Error occurs: ' + IntToStr(ErrorCode));
ErrorCode := 0;
end;
procedure TServerForm.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('Connected');
end;
procedure TServerForm.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Disconnected');
end;
procedure TServerForm.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Reading from socket...');
Memo1.Lines.Add(Socket.ReceiveText);
end;
//----Code of client side----
procedure TClientForm.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Memo1.Lines.Add('Error occurs: ' + IntToStr(ErrorCode));
ErrorCode := 0;
end;
procedure TClientForm.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('Connected');
end;
procedure TClientForm.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Disconnected');
end;
procedure TClientForm.ClientSocket1Write(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Writing to socket...');
end;
procedure TClientForm.btnSendClick(Sender: TObject);
begin
with ClientSocket1 do
begin
if not Active then
begin
Address := '127.0.0.1';
Port := 49536;
Open;
end;
Socket.SendText('Shaking hands...');
end;
end;
When I click button btnSend, ServerSocket1ClientConnect is fired but
ServerSocket1ClientRead is not. What's the problem? Thanks for any clues.
BTW, the chat demo provided by Delphi 6 works fine on my machine. I've
compared my application and the demo, but I cannot find any essential
differences, so I'm puzzled.
Regards,
George