Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
ВнизМногопоточность в Tserversocket Найти похожие ветки
← →
Ezorcist (2007-04-27 22:39) [0]Собственно искал информацию тут, на исходники.ру и в DRKB, но вопрос так и не решился.
Необходимо реализовать многопоточную обработку данных от клиента, как я понял необходимо создать просто TServerSocket перевести stThreadBlocking и в OnGetThread создавать поток-наследник от TServerClientThread, задавая новую Execute.
Объясните пожалуйста как собственно обрабатывать в этой Execute пришедшие от клиента данные? и как определять тот момент когда данные приняты?
← →
Сергей М. © (2007-04-28 08:15) [1]Например, так:
procedure TMyTransportThread.ClientExecute;
begin
while not Terminated and ClientSocket.Connected do
try
BytesRead := ClientSocket.ReceiveBuf(..); //ожидание и получение данных клиентского запроса
if BytesRead >= 0 then
begin
.. обработка принятых BytesRead байт
ClientSocket.SendBuf(..); //ответ клиенту, если необходимо
end
else
ClientSocket.Close;
except
ClientSocket.Close;
end;
end;
← →
Ezorcist (2007-04-28 17:27) [2]А значение размера буфера для ClientSocket.ReceiveBuf просто ставиться какой-то константой?
← →
Ezorcist (2007-04-28 21:47) [3]???
И еще вопросик по завершению потока. если к серверу подключен только один человек, то ServerSocket1.Socket.Connections[0].Close; потк почему-то не завершается. ?
← →
Ezorcist (2007-04-29 17:45) [4]?(
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.055 c