Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2009, 21:23   #1
zDjsensei
Новичок
Джуниор
 
Регистрация: 08.03.2009
Сообщений: 1
По умолчанию Нужна помощь по TSocketClient

Подскажите пожалуйста как можно сделать так чтобы когда мне приходит пакет вот такого вида(03 09 0А 00 67 43) чтобы отправлялся в ответ к примеру вот такой пакет(89 а0 7а 9с). Только чтобы только не создавая соединение заного...
zDjsensei вне форума Ответить с цитированием
Старый 08.03.2009, 21:58   #2
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Код:
Procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
Begin
If ServerSocket1.Socket.ReceiveText='03 09 0А 00 67 43' Then
Begin
Socket.SendText('89 а0 7а 9с');
End;
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 09.03.2009, 05:43   #3
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

Код:
Procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
  i: integer;
Begin
If Socket.ReceiveText='03 09 0А 00 67 43' Then
Begin
  for i:=0 to ServerSocket1.activeconnection-1 do
  ServerSocket1.connection[i].SendText('89 а0 7а 9с');
End;
End;
ServerSocket1 писать не нужно т.к. переменная сокет уже есть... далее рассылаем всем активным подключениям... если у тебя оно одно то вместо i напиши 0
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 09.03.2009, 14:38   #4
DjSeNseI
Пользователь
 
Аватар для DjSeNseI
 
Регистрация: 31.01.2009
Сообщений: 16
По умолчанию

Спс что уделили свою время)

Я почти всё так сделал как вы мне ща написали но допускал ошибку:
Цитата:
Procedure TForm1.ServerSocket1ClientRead(Send er: TObject;
Socket: TCustomWinSocket);
Begin
If Form1.ServerSocket1.Socket.ReceiveT ext='03 09 0А 00 67 43' Then
Socket.SendText('89 а0 7а 9с');
End;
DjSeNseI вне форума Ответить с цитированием
Старый 09.03.2009, 14:43   #5
DjSeNseI
Пользователь
 
Аватар для DjSeNseI
 
Регистрация: 31.01.2009
Сообщений: 16
По умолчанию

Возник ещё вопрос, как сделать с командами Анализ пакетов ? к примеру
1 команда : 09 85 20 а5
2 команда : 54 0В В1 00
3 команда : 45 9В 00

То есть комне если прийдёт вот этот пакет 45 9В 00 то сразу отправлялось вот такой пакет 54 87 В0
Надо чтобы анализировала все входящие пакета по типу 1-го байта.
К примеру если прийдёт пакет у которого тип 1 байта 0В то в ответ отправиться пакет 78 0В после опять прийдёт пакет если с тип 1 байта 09 то в ответ отправлялся пакет 30 00 а0

Не отключаясь от сервера!

Последний раз редактировалось DjSeNseI; 09.03.2009 в 14:57.
DjSeNseI вне форума Ответить с цитированием
Старый 09.03.2009, 15:47   #6
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

используй функцию copy(Socket.ReceiveText, 1, 2) копируй с первого символа 2 штуки и проверяй
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь нужна!!! china Помощь студентам 6 12.02.2009 22:19
Нужна помощь sergy88 Паскаль, Turbo Pascal, PascalABC.NET 5 28.01.2009 12:36
Нужна помощь londoner Общие вопросы Delphi 2 05.02.2007 14:23