Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ожидани пакета данных. как узнать что пакет пришел. 
V
    Опции темы
Mixasik
Дата 17.11.2006, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Little Delphi monstr
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 4.10.2006
Где: Волгоград

Репутация: нет
Всего: нет



Допустим на ip xxx.xxx.xxx.xxx на порт xxxx был отправлен пакет данных с сервера. Но как  программа "клиент" узнает об этом. То есть "клиент" должен следить за портом и если на него что-нибудь пришло, получить эти данные с порта? 

p.s На какой панили в дельфи находится TClientSocket и TServerSocket? Никак не найду smile 
PM MAIL ICQ   Вверх
Snowy
Дата 17.11.2006, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Если программа ожидает входящее подключение, то в ней должен быть реализован функционал сервера.
Если она сама установила подключение, то определение прихода пакета зависит от реализации.
Практически во всех компонентах для этого существует событие. Например OnReceive

Добавлено @ 18:54 
Цитата(Mixasik @  17.11.2006,  18:47 Найти цитируемый пост)
На какой панили в дельфи находится TClientSocket и TServerSocket?
Ни на какой.
Их нужно включать вручную: http://vingrad.ru/DELPHI-DLP-001373
PM MAIL   Вверх
Matematik
Дата 17.11.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



Цитата(Mixasik @  17.11.2006,  18:47 Найти цитируемый пост)
как  программа "клиент" узнает об этом. То есть "клиент" должен следить за портом и если на него что-нибудь пришло, получить эти данные с порта? 

Да
Цитата(Mixasik @  17.11.2006,  18:47 Найти цитируемый пост)
На какой панили в дельфи находится TClientSocket и TServerSocket?

Начиная в D7 эти компоненты не устанавливаются автоматически. Файл dclsockets70.bpl надо устанавливать руками (находится в Delphi\Bin)
Component->Install Packeges-Add
укажи файл dclsockets70.bpl
После установки компоненты появятся на вкладке Internet
PM MAIL WWW ICQ   Вверх
Mixasik
Дата 17.11.2006, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Little Delphi monstr
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 4.10.2006
Где: Волгоград

Репутация: нет
Всего: нет



Цитата(Matematik @  17.11.2006,  18:56 Найти цитируемый пост)
Начиная в D7 эти компоненты не устанавливаются автоматически. Файл dclsockets70.bpl надо устанавливать руками (находится в Delphi\Bin)Component->Install Packeges-Addукажи файл dclsockets70.bplПосле установки компоненты появятся на вкладке Internet


Понятно, ато неуобно не в визуальном виде работать...
Цитата(Snowy @  17.11.2006,  18:53 Найти цитируемый пост)
Практически во всех компонентах для этого существует событие. Например OnReceive


А понятно какое событие использовать.

А возможно, чтобы данные приходящие порциями ожидали, когда они считаются оттуда, то есть как бы была очередь пакетов?(Я сам толком не понял, что спросил, в общем, чтобы данные оставались на порту, пока не обработался предыдущий пакет, такое возможно?)
PM MAIL ICQ   Вверх
Snowy
Дата 17.11.2006, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Нет. Это невозможно. Ибо информация в TCP/IP передаётся потоком, а не пакетами.
Сокет понятия не имеет, когда заканчивается предыдущий пакет, а когда начинается новый.
Это уже твоя задача - собирать данные, пока не накопится цельный "пакет".
Ибо "пакет" в данном случае понятие условное.
Это для тебя там могут быть пакеты, файлы, строки.
Для сокета это поток информации.
Его задача доставить. А что там - это уже твоя забота.
PM MAIL   Вверх
Mixasik
Дата 17.11.2006, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Little Delphi monstr
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 4.10.2006
Где: Волгоград

Репутация: нет
Всего: нет



Цитата(Snowy @  17.11.2006,  19:52 Найти цитируемый пост)
Его задача доставить. А что там - это уже твоя забота.


Понятно, ну буду знать. Теперь попробую сокеты программировать)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1138 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.