![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сокеты. Тормозит приложение. [D5, Win2k]
Vlad Oshin © (2003-12-09 12:10:00)
Все работает до нажатия кнопки2, где меняется адресат
онклик буттона2
if button2.Caption="изменить"
then begin
ClientSocket1.Active:=false;
timer1.Enabled:=false; /ничего пока передавать не будем
timer2.Enabled:=false; /ничего пока передавать не будем
edit4.Enabled:=true; /можно поменять адресата
button2.Caption:="применить"; /
memo1.SetFocus;
end
else begin
ClientSocket1.Active:=false;
edit4.Enabled:=false; /адресата во время работы менять нельзя
button2.Caption:="изменить";
timer1.Enabled:=true; /можно передавать
timer2.Enabled:=true; /можно передавать
memo1.SetFocus;
end;
на Timer1Timer посылается сообщение
ClientSocket1.Active:=false;/на всякий случай
ClientSocket1.Host:=edit1.Text;/пока статический адрес
ClientSocket1.Active:=true;
ClientSocket1.Socket.SendText("Error");
ClientSocket1.Active:=false;
на Timer2Timer пингуется хост из edit4, с которым манипулировали в начале(онклик буттона2)
Digitman (2003-12-09 16:02:00) [1]
смотря какова задача
Vlad Oshin (2003-12-09 15:40:00) [2]
ясно.
Что посоветуешь для чтения по режимам и вообще по сокетам?
Digitman (2003-12-09 14:15:00) [3]
ну так а что же ты хотел ?
вызовы
ClientSocket1.Active:=true;
ClientSocket1.Socket.SendText("Error");
на время выполнения будут блокировать тот код.поток процесса, который их (вызовы) осуществляет
в дан.случае это - осн.код.поток, который кр.всего прочего отвечает за прием/диспетчеризвцию/обработку событий польз.интерфейса
Vlad Oshin (2003-12-09 14:07:00) [4]
блокирующий режим
Digitman (2003-12-09 12:28:00) [5]
режим работы гнезда ClientSocket1 ?
блокирующий (1) ?
неблокирующий (2) ?
в случае (2) алгоритм твой неверен в принципе