![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Mixasik |
|
|||
Little Delphi monstr ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 4.10.2006 Где: Волгоград Репутация: нет Всего: нет |
Допустим на ip xxx.xxx.xxx.xxx на порт xxxx был отправлен пакет данных с сервера. Но как программа "клиент" узнает об этом. То есть "клиент" должен следить за портом и если на него что-нибудь пришло, получить эти данные с порта?
p.s На какой панили в дельфи находится TClientSocket и TServerSocket? Никак не найду ![]() |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Если программа ожидает входящее подключение, то в ней должен быть реализован функционал сервера.
Если она сама установила подключение, то определение прихода пакета зависит от реализации. Практически во всех компонентах для этого существует событие. Например OnReceive Добавлено @ 18:54
Их нужно включать вручную: http://vingrad.ru/DELPHI-DLP-001373 |
|||
|
||||
Matematik |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 24 Всего: 50 |
Да
Начиная в D7 эти компоненты не устанавливаются автоматически. Файл dclsockets70.bpl надо устанавливать руками (находится в Delphi\Bin) Component->Install Packeges-Add укажи файл dclsockets70.bpl После установки компоненты появятся на вкладке Internet |
||||
|
|||||
Mixasik |
|
|||
Little Delphi monstr ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 4.10.2006 Где: Волгоград Репутация: нет Всего: нет |
Понятно, ато неуобно не в визуальном виде работать...
А понятно какое событие использовать. А возможно, чтобы данные приходящие порциями ожидали, когда они считаются оттуда, то есть как бы была очередь пакетов?(Я сам толком не понял, что спросил, в общем, чтобы данные оставались на порту, пока не обработался предыдущий пакет, такое возможно?) |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Нет. Это невозможно. Ибо информация в TCP/IP передаётся потоком, а не пакетами.
Сокет понятия не имеет, когда заканчивается предыдущий пакет, а когда начинается новый. Это уже твоя задача - собирать данные, пока не накопится цельный "пакет". Ибо "пакет" в данном случае понятие условное. Это для тебя там могут быть пакеты, файлы, строки. Для сокета это поток информации. Его задача доставить. А что там - это уже твоя забота. |
|||
|
||||
Mixasik |
|
|||
Little Delphi monstr ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 4.10.2006 Где: Волгоград Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |