Вопрос по созданию клиентского потока в TTcpServer
От: ThreeDHead  
Дата: 04.01.04 20:12
Оценка:
Как создать поток клиента при подключении онго ?
Что не так сделано в первом примере ?

Делаю так:
// — — — — — — — — — — — — — — — — — — — — — — — —
Type
TMyClientSocketThread = Class(TClientSocketThread)
protected
procedure Execute; override;
end;

procedure TMyClientSocketThread.Execute;
begin
While (not Terminated) and
(Clientsocket.Connected) // Но здесь ClientSocket = nil — почему ?!?!?!
do
begin
...
end;
end;

procedure TForm1.TcpServer1GetThread(Sender: TObject;
var ClientSocketThread: TClientSocketThread);
begin
ClientSocketThread:= TMyClientSocketThread.Create(TcpServer1.ServerSocketThread);
end;
// — — — — — — — — — — — — — — — — — — — — — — — —


С сокетами вот так работает:
// — — — — — — — — — — — — — — — — — — — — — — — —
Type
TMyServerClientThread= Class(TServerClientThread)
protected
procedure ClientExecute; override;
end;

procedure TMyServerClientThread.ClientExecute;
begin
While (not Terminated) and
(Clientsocket.Connected) // А здесь ClientSocket <> nil — всё в порядке !
do
begin
...
end;
end;

procedure TForm1.ServerSocketGetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
begin
SocketThread:= TMyServerClientThread.Create(False, ClientSocket);
end;
// — — — — — — — — — — — — — — — — — — — — — — — -
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.