![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
Итак, идея в том чтоб сделать прогу, которая с определенного сервера локальной сети передавала картинки на несколько других компов в сети, причем без открывания локального доступа и т.д. Сделать программу которая ложит картинку в опред. открытый каталог а другой комп копировал - элементарно. Надо чтоб этого небыло. Чтоб компы каким-то образом коннектились и серв передавал, компы получали. Помогите
|
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
На компах получателях поднимаеш серверные сокеры (думаю UDP лучший вариант)
На компе передатчике поднимаеш клиентский сокет и транслируеш с него инфу (какую угодно) в виде широковещательных послок. Самый простой вариант воспользоваться indy9. меньше заморочек и разобраться не сложно. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
А можно мне написать пример. Я в этом
|
|||
|
||||
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
Ага. Значит, я немного разобрался с УДП. Я непонял несколько вещей:
1) Порт. Что это за штука, как его определить и т.д. 2) Как оформить передачу файлов сразу на несколько компьютеров, а не на 1.
Это я нашел. Не помню, где. Прошу обяснить как ТУТ это переоборудовать. И кКак оформить передачу файлов сразу на несколько компьютеров, а не на 1. |
|||
|
||||
| drkot |
|
||||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
Если сравнить комп с многоэтажным домом, то порт это дверь (или окно) через которое проходит информация адрессованная конкретному потоку. Порт нужно не определять, а задавать. Межеш выбрать практически любое число от 10000 до 65000.
смотри метод boardcast (отсылает широковещательные пакеты на все компьютеры подсети). Перво наперво разделить серверную и клиенсткую часть.
и по аналогии для передачи тела файла. PS: порт можно оставить тотже -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
||||
|
|||||
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
||||
|
||||
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
Единственное что теперь надо это способ передачи тела самого файла.
Можно это как-то в двух строчках продемонстрировать?? И вы говорили, send заменить на broadcast... А что на что тогда менять у "получателя"?? Это сообщение отредактировал(а) Tokagero - 27.10.2006, 14:15 |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
У получателя все останется как было.
есть два типа функции send в одном указавается адресс получателя, а в другой нет. тебе нужна функия без адреса получателя (boardcast) + одноименное свойство компонента boardcast:=true. И думаю болеше ничего менять не надо. Освобожусь и подправлю твой исходник. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
Спасибо... Буду очень признателен.
|
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
Вот накрапал.
Реализована односторонняя передача файлов. PS: С тебя ящик пива. Присоединённый файл ( Кол-во скачиваний: 153 )
FileTransfer.zip 10,82 Kb-------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
По мойму эта программа для получателя... а НЕ для отправителя. Мне то и надобыло чтоб была прога серва, отправляющего опред. файл, например, с:\pic.jpg. Просто мне в 12.30 (украина,донецк) седня надо буде это показать... Можно реализовать??
Зы сервер отправляет, компы получают. Это сообщение отредактировал(а) Tokagero - 28.10.2006, 09:12 |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
там две программы одна передает (та что с кнопкой), а вторая принимает (та что с memo).
если ты их обе откомпилировал и запустил то при нажатии на кнопку появится запрос на выбор файла. файл рассылается в пределах подсети. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
а сермер не комп типа? соединение всегда инициирует клиент, сервер может только отвечает. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: нет Всего: 122 |
drkot, а вот можно ли как нить эту картинку получить и прямо из потока вывести в Image... и так каждую секунду???
|
|||
|
||||
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
drkot, в том примере что ты дал сервер получает файлы... А клиент отправляет... А можно наоборот... Я могу выложить то что я навоял и сможешь подправить??
|
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: нет Всего: 122 |
Tokagero, а просто сервер подписать как клиент, а клиент как сервер...
Получателем сервер служит... тебе что важно как компоненты называются... |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
Image.Picture.LoadFromStream(); -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: нет Всего: 122 |
drkot, а вот к примеру в Stream можно сразу и сохранять, не сохраняя на винте???
Нет ли каких нить нюансов с этим??? |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: нет Всего: 122 |
Вернее как картинку в Stream поместить???
|
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
Создать поток типа TmemorySteam
записать в него получаемые пакеты, а потом описанное ранее действие. запись аналогична записи в файл -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
Image1.picture.SaveToStream()
<Посылка стрима на др комп> Image1.picture.LoadFromStream |
|||
|
||||
| ruX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 8.9.2006 Где: г.Гатчина Репутация: нет Всего: 3 |
2 Stream:
На самом деле вот что:
Посмотри сколько трафа кушают такие проги как radmin.. Похоже что они передают клиенту только те участки экрана, которые изменились. Это сообщение отредактировал(а) ruX - 8.11.2006, 19:07 --------------------
Случайность - внезапно наступившая неизбежность. |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: нет Всего: 122 |
ruX, ну мне необходи прога типа NetMeeting, RAdmin - слишком сложен для написания...
Если можешь кинь что писал... |
|||
|
||||
| drkot |
|
||||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
вопервых чем плох udp? все реализуется наура. пример этого в топике. это смотря как делать (если попиксельно прорисовавать то да)
Кто мешает такое реализовать? -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
||||
|
|||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: нет Всего: 122 |
Ну я так понимаю, что лучше через TCP делать...
Тогда: 1. Возможно ли на нем послать широковещательный запрос??? 2. С ним работать почти также как и с UDP??? |
|||
|
||||
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
Ой... Не надо ТСР... Я уже с УДП давно мучаюсь! Еще и с ТСП столько-же промучаться??
|
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
Каждый протокол предназначен для решения своих задач и просто думать здесь мало. Мне вобщем непонятно куда ползет топик. Вопрос давно решен. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| ruX |
|
||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 8.9.2006 Где: г.Гатчина Репутация: нет Всего: 3 |
Приведу только ключевые фрагменты кода: (для сервера)
(для клиента)
Вот.. Щас и сам вижу что многие вещи тупо сделал.
Ну не знаю чего там мучаться.. Единственное отличие явно видимое - это то что соединение устанавливаеться, пакеты фрагментируются, в случае ошибки пакет будет заново послан, т.е. данные не потеряются.
1) нед 2) начни с компонентов, посмотри пример чата который с делфи идёт Добавлено @ 13:07 [ Добавлено @ 13:07 [ |
||||||||||
|
|||||||||||
| Tokagero |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
ruX, а если надо сразу на несколько компов а широковещания нету тоо... С каждым связь чели устанавливать?? Или как?
TruAndminClientWindow.cSRead это в каком компоненте?? (на че жать?) |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
для этого и есть UDP. Можно конечно каналы организовать, но это сложнее. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| ruX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 8.9.2006 Где: г.Гатчина Репутация: нет Всего: 3 |
Эм.
TruAndminClientWindow.cSRead - это метод. Нинада ниначё жать Насколько я помню то это обработчик события проходящих в сокет данных. А что касается множества компьютеров, то я согласен. --------------------
Случайность - внезапно наступившая неизбежность. |
|||
|
||||
| madi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
Здравствуйте!!!
Помогите пожалуйста!!!! Как загрузить файл через сеть, не открывая диалог |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
Забодай меня комар...
madi, книжку прочитай! или статьи коих в инете полно! -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
![]()
|
| Правила форума "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. |