| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Локальная сеть |
| Автор: Tokagero 25.10.2006, 18:07 |
| Итак, идея в том чтоб сделать прогу, которая с определенного сервера локальной сети передавала картинки на несколько других компов в сети, причем без открывания локального доступа и т.д. Сделать программу которая ложит картинку в опред. открытый каталог а другой комп копировал - элементарно. Надо чтоб этого небыло. Чтоб компы каким-то образом коннектились и серв передавал, компы получали. Помогите |
| Автор: drkot 25.10.2006, 18:17 |
| На компах получателях поднимаеш серверные сокеры (думаю UDP лучший вариант) На компе передатчике поднимаеш клиентский сокет и транслируеш с него инфу (какую угодно) в виде широковещательных послок. Самый простой вариант воспользоваться indy9. меньше заморочек и разобраться не сложно. |
| Автор: Tokagero 25.10.2006, 18:25 |
| А можно мне написать пример. Я в этом |
| Автор: Tokagero 27.10.2006, 08:45 | ||
| Ага. Значит, я немного разобрался с УДП. Я непонял несколько вещей: 1) Порт. Что это за штука, как его определить и т.д. 2) Как оформить передачу файлов сразу на несколько компьютеров, а не на 1.
Это я нашел. Не помню, где. Прошу обяснить как ТУТ это переоборудовать. И кКак оформить передачу файлов сразу на несколько компьютеров, а не на 1. |
| Автор: Tokagero 27.10.2006, 12:51 |
?? Мне то и надо обяснить, куда собсно вписатть тело файла. Допустим, надо передать файл "c:\pic.jpg" |
| Автор: Tokagero 27.10.2006, 14:13 |
| Единственное что теперь надо это способ передачи тела самого файла. Можно это как-то в двух строчках продемонстрировать?? И вы говорили, send заменить на broadcast... А что на что тогда менять у "получателя"?? |
| Автор: drkot 27.10.2006, 14:59 |
| У получателя все останется как было. есть два типа функции send в одном указавается адресс получателя, а в другой нет. тебе нужна функия без адреса получателя (boardcast) + одноименное свойство компонента boardcast:=true. И думаю болеше ничего менять не надо. Освобожусь и подправлю твой исходник. |
| Автор: Tokagero 27.10.2006, 17:19 |
| Спасибо... Буду очень признателен. |
| Автор: drkot 27.10.2006, 18:37 |
| Вот накрапал. Реализована односторонняя передача файлов. PS: С тебя ящик пива. |
| Автор: Tokagero 28.10.2006, 09:05 |
| По мойму эта программа для получателя... а НЕ для отправителя. Мне то и надобыло чтоб была прога серва, отправляющего опред. файл, например, с:\pic.jpg. Просто мне в 12.30 (украина,донецк) седня надо буде это показать... Можно реализовать?? Зы сервер отправляет, компы получают. |
| Автор: drkot 30.10.2006, 15:39 |
| там две программы одна передает (та что с кнопкой), а вторая принимает (та что с memo). если ты их обе откомпилировал и запустил то при нажатии на кнопку появится запрос на выбор файла. файл рассылается в пределах подсети. |
| Автор: drkot 30.10.2006, 16:03 |
а сермер не комп типа? соединение всегда инициирует клиент, сервер может только отвечает. |
| Автор: Rodman 4.11.2006, 16:55 |
| drkot, а вот можно ли как нить эту картинку получить и прямо из потока вывести в Image... и так каждую секунду??? |
| Автор: Tokagero 4.11.2006, 19:20 |
| drkot, в том примере что ты дал сервер получает файлы... А клиент отправляет... А можно наоборот... Я могу выложить то что я навоял и сможешь подправить?? |
| Автор: Rodman 4.11.2006, 23:50 |
| Tokagero, а просто сервер подписать как клиент, а клиент как сервер... Получателем сервер служит... тебе что важно как компоненты называются... |
| Автор: drkot 6.11.2006, 12:22 |
Image.Picture.LoadFromStream(); |
| Автор: Rodman 6.11.2006, 12:35 |
| drkot, а вот к примеру в Stream можно сразу и сохранять, не сохраняя на винте??? Нет ли каких нить нюансов с этим??? |
| Автор: Rodman 8.11.2006, 11:18 |
| Вернее как картинку в Stream поместить??? |
| Автор: drkot 8.11.2006, 11:23 |
| Создать поток типа TmemorySteam записать в него получаемые пакеты, а потом описанное ранее действие. запись аналогична записи в файл |
| Автор: Tokagero 8.11.2006, 15:57 |
| Image1.picture.SaveToStream() <Посылка стрима на др комп> Image1.picture.LoadFromStream |
| Автор: ruX 8.11.2006, 18:39 |
| 2 Stream: На самом деле вот что:
Посмотри сколько трафа кушают такие проги как radmin.. Похоже что они передают клиенту только те участки экрана, которые изменились. |
| Автор: Rodman 8.11.2006, 18:51 |
| ruX, ну мне необходи прога типа NetMeeting, RAdmin - слишком сложен для написания... Если можешь кинь что писал... |
| Автор: drkot 9.11.2006, 14:06 | ||||||
вопервых чем плох udp? все реализуется наура. пример этого в топике.
это смотря как делать (если попиксельно прорисовавать то да)
Кто мешает такое реализовать? |
| Автор: Rodman 9.11.2006, 14:16 |
| Ну я так понимаю, что лучше через TCP делать... Тогда: 1. Возможно ли на нем послать широковещательный запрос??? 2. С ним работать почти также как и с UDP??? |
| Автор: Tokagero 9.11.2006, 20:13 |
| Ой... Не надо ТСР... Я уже с УДП давно мучаюсь! Еще и с ТСП столько-же промучаться?? |
| Автор: drkot 10.11.2006, 11:40 | ||
Каждый протокол предназначен для решения своих задач и просто думать здесь мало. Мне вобщем непонятно куда ползет топик.
Вопрос давно решен. |
| Автор: ruX 10.11.2006, 13:04 | ||||||||||
Приведу только ключевые фрагменты кода: (для сервера)
(для клиента)
Вот.. Щас и сам вижу что многие вещи тупо сделал.
Ну не знаю чего там мучаться.. Единственное отличие явно видимое - это то что соединение устанавливаеться, пакеты фрагментируются, в случае ошибки пакет будет заново послан, т.е. данные не потеряются.
1) нед 2) начни с компонентов, посмотри пример чата который с делфи идёт Добавлено @ 13:07 [ Добавлено @ 13:07 [ |
| Автор: Tokagero 10.11.2006, 20:31 |
| ruX, а если надо сразу на несколько компов а широковещания нету тоо... С каждым связь чели устанавливать?? Или как? TruAndminClientWindow.cSRead это в каком компоненте?? (на че жать?) |
| Автор: drkot 10.11.2006, 20:38 |
для этого и есть UDP. Можно конечно каналы организовать, но это сложнее. |
| Автор: ruX 1.12.2006, 11:13 |
| Эм. TruAndminClientWindow.cSRead - это метод. Нинада ниначё жать Насколько я помню то это обработчик события проходящих в сокет данных. А что касается множества компьютеров, то я согласен. |
| Автор: madi 23.11.2009, 09:18 |
| Здравствуйте!!! Помогите пожалуйста!!!! Как загрузить файл через сеть, не открывая диалог |
| Автор: drkot 23.11.2009, 14:55 |
| Забодай меня комар... madi, книжку прочитай! или статьи коих в инете полно! |