Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2009, 19:27   #1
VladimirNikolaev
 
Регистрация: 06.10.2009
Сообщений: 3
По умолчанию Передача файла между компами за NAT

Приветствую всех. Подскажите, пожалуйста, решение.

Есть две сетки, обе за NAT, и сервер с белым IP. Необходимо с компа в одной сетке постоянно (в автоматическом режиме) передавать файлы в другую сетку, где их должны получать несколько компов.

Компонент idTCPClient на компе-источнике передает файл компоненту idTCPServer. На компах-получателях компоненты idTCPClient также коннектятся к idTCPServer.

Можно ли сделать, чтобы на сервере этот файл перенаправлялся нужному клиенту без сохранения файла на диск? Что-то типа роутера, но с помощью компонентов Indy?
VladimirNikolaev вне форума Ответить с цитированием
Старый 06.10.2009, 19:49   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

ставьте (делайте) сервер на белом IP, на остальных клиенты...
(если локальная)

если есть инет, то есть проверенное решение - hamachi
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.10.2009, 14:16   #3
VladimirNikolaev
 
Регистрация: 06.10.2009
Сообщений: 3
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
ставьте (делайте) сервер на белом IP, на остальных клиенты...
(если локальная)

если есть инет, то есть проверенное решение - hamachi
Так вот вопрос в том, как сделать так, чтобы запрос от клиента к серверу перенаправлялся сервером другому клиенту.

Hamachi установить на некоторых клиентах нет возможности.
VladimirNikolaev вне форума Ответить с цитированием
Старый 07.10.2009, 14:18   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

ну раз нет возможности, делайте свой сервер
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.10.2009, 14:28   #5
VladimirNikolaev
 
Регистрация: 06.10.2009
Сообщений: 3
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
ну раз нет возможности, делайте свой сервер
Уважаемый raxp! Можно, я еще раз повторю свой вопрос? Я же не спрашивал в первый раз, ставить мне сервер или нет, а во второй раз - делать ли мне сервер или нет. Мне совершенно ясно, что сервер должен работать на компе с белым адресом.

Я спрашивал, КАК с помощью компонентов Indy можно сделать перенаправление сервером запросов клиент-сервер к другому клиенту. Клиент же запрашивает файл не у сервера, а у другого клиента с серым IP, но ему это приходится делать через сервер. Что должен делать сервер в этой ситуации?
VladimirNikolaev вне форума Ответить с цитированием
Старый 07.10.2009, 14:41   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

TIdMappedPortTCP

Цитата:
TIdMappedPortTCP is a TIdTCPServer descendant that implements a port mapping proxy server for connections to a remote computer system.

TIdMappedPortTCP listens for connections on a designated port number, and makes an outbound connection to another server using another specified port number. Listener thread(s) defined in the Bindings for TIdMappedPortTCP create new thread- or fiber-based sessions using the ContextClass defined for the server.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 07.10.2009, 14:53   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Я спрашивал, КАК с помощью компонентов Indy можно сделать перенаправление сервером запросов клиент-сервер к другому клиенту. Клиент же запрашивает файл не у сервера, а у другого клиента с серым IP, но ему это приходится делать через сервер. Что должен делать сервер в этой ситуации?
- Уважаемый VladimirNikolaev.

сделайте некий упрощенный протокол обмена-команд с сервером и передавайте в качестве параметра IP адрес серой машины в другой сети и сам файл (процедуры приема-передачи файла есть тут на форуме), потом сервак, т.е. idTCPServer принимает скажем команду содержащую IP (т.е. кому перенаправить) и файл (что перенаправить), на всех остальных серых машинах в обеих подсетках стоят клиенты с соединением на белый IP и одинаковыми процедурами приема-передачи, чтоб не морочиться с фильтрацией командных запросов, используйте компонент Tudp и командный обмен реализуйте им (кстати по UDP вы можете и файлы передавать и посылать широковещательные запросы, да и обмен будет быстрее чем Indy компонентами... но хозяин барин)

вот вкратце как вы можете поступить... есть еще вариант, если вы работали с маршрутизацией и unix системами, то там можно это сделать скриптами...ясное дело что це не винда будет
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.10.2009, 15:02   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
используйте компонент Tudp и командный обмен реализуйте им (кстати по UDP вы можете и файлы передавать и посылать широковещательные запросы, да и обмен будет быстрее чем Indy компонентами... но хозяин барин)
и чем быстрее в сравнении с TidUDPserver/client ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 07.10.2009, 15:12   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
и чем быстрее в сравнении с TidUDPserver/client ?
- я что настаиваю? и кстати сравнение шло с idTCP (про TidUDP речь не шла), tcp как вы знаете с проверкой отпрвки данных идет и это время занимает. и собственно, как автор захочет так и сделает...

...что касается Indy, реализация у них зачастую хромает, не во всех компонентах конечно...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.10.2009, 15:36   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

вы сравниваете Tudp с TIDTcp ?
забавно.
Цитата:
...что касается Indy, реализация у них зачастую хромает, не во всех компонентах конечно...
Смотря что понимать под реализацией и что оценивать. Реализация TCP и UDP ничем не отличается от стандартной реализации и реализована совершенночерез те же интерфейсы, что и в стандартных компонентах.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VPN соединение между двумя компами. Помогите с непонятками. jojahti Свободное общение 5 25.09.2009 21:00
Передача и параметров между страницами Killer_djon JavaScript, Ajax 3 04.02.2009 04:07
Передача переменных между процедурами Wi1D Помощь студентам 2 14.12.2008 23:55
Чат по LAN между 2 компами aesoem Работа с сетью в Delphi 5 11.04.2008 14:23
передача переменных между страницами fufel JavaScript, Ajax 10 22.10.2007 17:04