| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Ожидани пакета данных. |
| Автор: Mixasik 17.11.2006, 18:47 |
| Допустим на ip xxx.xxx.xxx.xxx на порт xxxx был отправлен пакет данных с сервера. Но как программа "клиент" узнает об этом. То есть "клиент" должен следить за портом и если на него что-нибудь пришло, получить эти данные с порта? p.s На какой панили в дельфи находится TClientSocket и TServerSocket? Никак не найду |
| Автор: Matematik 17.11.2006, 18:56 | ||||
Да
Начиная в D7 эти компоненты не устанавливаются автоматически. Файл dclsockets70.bpl надо устанавливать руками (находится в Delphi\Bin) Component->Install Packeges-Add укажи файл dclsockets70.bpl После установки компоненты появятся на вкладке Internet |
| Автор: Mixasik 17.11.2006, 19:27 | ||||
Понятно, ато неуобно не в визуальном виде работать...
А понятно какое событие использовать. А возможно, чтобы данные приходящие порциями ожидали, когда они считаются оттуда, то есть как бы была очередь пакетов?(Я сам толком не понял, что спросил, в общем, чтобы данные оставались на порту, пока не обработался предыдущий пакет, такое возможно?) |
| Автор: Snowy 17.11.2006, 19:52 |
| Нет. Это невозможно. Ибо информация в TCP/IP передаётся потоком, а не пакетами. Сокет понятия не имеет, когда заканчивается предыдущий пакет, а когда начинается новый. Это уже твоя задача - собирать данные, пока не накопится цельный "пакет". Ибо "пакет" в данном случае понятие условное. Это для тебя там могут быть пакеты, файлы, строки. Для сокета это поток информации. Его задача доставить. А что там - это уже твоя забота. |
| Автор: Mixasik 17.11.2006, 20:10 |
Понятно, ну буду знать. Теперь попробую сокеты программировать) |