Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.12.2012, 11:16
Аватар для fofka
fofka fofka вне форума
Начинающий
 
Регистрация: 12.10.2008
Сообщения: 163
Репутация: -1588
По умолчанию Несколько ClientSocket в одном приложении

Всех с наступающим Новым Годом.
Делаю приложение с использованием 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. Если подключать по одному устройству, то проблем с отключением нет. Работает без ошибок. Если включить оба устройства в хаб, то практически сразу ошибка.

Последний раз редактировалось fofka, 31.12.2012 в 11:38.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025