![]() |
|
#3
|
|||
|
|||
![]() Цитата:
Чтобы получать сообщения надо использовать компонент TcpServer? пчму-то не хочет сообщения принимать, если есть какой-нибудь пример, с радостью разберу код. Вот так работает отлично. Код:
procedure TForm1.OnOff (ip,pass,onORoff: String); begin TC1.RemoteHost:= ip; TC1.RemotePort:='2424'; TC1.Active:=True; TC1.Sendln('$KE,PSW,SET,'+pass+#13+#10); if(onORoff = 'on') then begin TC1.Sendln('$KE,WR,1,0'+#13+#10); Memo1.Lines.Add('on'); end else begin TC1.Sendln('$KE,WR,1,1'+#13+#10); Memo1.Lines.Add('off'); end; sleep(500); TC1.Active:=False; end; Вопрос: Как уменьшить время, которое синхронный сокет блокирует программу в тех случаях, когда не может подключиться? оказывается и ClientSocket можно было в синхронный режим перевести, тупанул чутка. Но проблема с замораживанием интерфейса осталась, как можно её решить? Немного полазив нашел компонент TidAntiFreeze, который размораживает все компоненты, которые не относятся к системе Indy, но тогда и сокет надо из системы Indy брать. Получается никак не сделать нормально, без размазывания кода по разным процедурам? ![]() Последний раз редактировалось Dzman, 02.03.2013 в 21:02. |