Форум: "Сети";
Текущий архив: 2011.06.19;
Скачать: [xml.tar.bz2];
ВнизSendText в блокирующем сокете Найти похожие ветки
← →
Alex_C (2009-04-03 09:40) [0]Вопрос в продолжении моей темы
http://delphimaster.net/view/6-1237876024/
С работой блокирующего сокета в треде разобрался.
Теперь есть такой вопрос: как правильно организовать передачу запроса серверу от клиента? Когда сокет был не блокирующий все было просто:
if TelnetSocket.Active then
TelnetSocket.Socket.SendText(S);
Однако сейчас сам TelnetSocket у меня объевлен внутри треда. Как правильно поступить?
← →
Alex_C (2009-04-03 09:59) [1]Верно ли такое решение:
Execute:
while (not Terminated) and TelnetSocket.Socket.Connected do
begin
if StrToSend <> "" then
begin
TelnetSocket.Socket.SendText(StrToSend);
StrToSend := "";
end;
DataLength := TelnetSocket.Socket.ReceiveBuf(Buf[0], 64000);
if DataLength <= 0 then
Break;
try
ReadDataFromTelnet(Buf, DataLength);
except
end;
end;
procedure TTelnetThread.SendText(S: string);
begin
StrToSend := S;
end;
← →
Сергей М. © (2009-04-03 11:31) [2]Нет, не верно.
StrToSend у тебя - потоконебезопасный ресурс.
Как минимум следует синхронизировать мультипоточный доступ к нему.
← →
Polevi © (2009-04-06 11:13) [3]SendText это функция
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2011.06.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c