Всех с наступающим Новым Годом.
Делаю приложение с использованием ClientSocket. Я уже задавал вопрос по работе с этим устройством
http://www.delphisources.ru/forum/sh...ghlight=Jerome, там разобрался все работает прекрасно. Сейчас у меня в "конструкторе" установленны два устройства Jerome, соединены через хаб с компом. При подключении все нормально, но через какое то время то один Jerom, то другой отваливаются.
В логе
Код:
31.12.2012 10:24:48 Команда на подключение к хосту
31.12.2012 10:24:48 Отправлен запрос авторизации-$KE,PSW,SET
31.12.2012 10:24:48 Получен ответ на авторизацию
31.12.2012 10:24:48 Команда на подключение к хосту
31.12.2012 10:24:48 Отправлен запрос авторизации-$KE,PSW,SET
31.12.2012 10:24:48 Получен ответ на авторизацию
31.12.2012 10:24:49 Подключение к хосту 192.168.10.51 установлено
31.12.2012 10:24:49 Подключение к хосту 192.168.10.52 установлено
31.12.2012 10:25:52 Ошибка №10053
31.12.2012 10:25:52 Подключение к хосту 192.168.10.52 потерянно
31.12.2012 10:25:56 Ошибка №10053
31.12.2012 10:25:58 Ошибка №10053
Соответсвенно выдается ошибка, что соединение закрыто.
Так у меня происходит подключение устройства.
Код:
procedure TForm1.Connection1;///Подключение первого хоста
begin
if Form1.N14.Checked = true
then
logs('Команда на подключение к хосту');
CS1.Port := StrToInt(LabeledEdit2.text);///Порт
CS1.Address :=LabeledEdit1.text;///IP адрес
CS1.Active :=True;///Открываем порт
Sleep(100);
CS1.Socket.SendText('$KE,PSW,SET,Jerome'#13#10);///Отправляем пароль
logs('Отправлен запрос авторизации-$KE,PSW,SET');
Memo1.Text:=s;
logs('Получен ответ на авторизацию '+(s)+'');
end;
procedure TForm1.CS1Read(Sender: TObject;Socket: TCustomWinSocket);
begin
s := Socket.ReceiveText;
end;
procedure TForm1.Connection2;///Подключение второго хоста
begin
if Form1.N14.Checked = true
then
logs('Команда на подключение к хосту');
CS2.Port := StrToInt(LabeledEdit4.text);
CS2.Address :=LabeledEdit3.text;
CS2.Active :=True;
Sleep(100);
CS2.Socket.SendText('$KE,PSW,SET,Jerome'#13#10);ю
logs('Отправлен запрос авторизации-$KE,PSW,SET');
Memo2.Text:=s1;
logs('Получен ответ на авторизацию '+(s1)+'');
end;
procedure TForm1.CS2Read(Sender: TObject;Socket: TCustomWinSocket);
begin
s1:= Socket.ReceiveText;
end;
На включение или отключение команды отсылаю так.
Код:
CS1.Socket.SendText('$KE,WR,1,1'#13#10);///Вкл. канала на первом хосте
CS1.Socket.SendText('$KE,WR,1,0'#13#10);///Откл. канала на первом хосте
CS2.Socket.SendText('$KE,WR,1,1'#13#10);///Второй хост
Можете подсказать почему происходит отключение устройства?
P.S. Если подключать по одному устройству, то проблем с отключением нет. Работает без ошибок. Если включить оба устройства в хаб, то практически сразу ошибка.