Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 049

/ вопрос закрыт /

Приветствую, уважаемые эксперты!
Требуется организовать передачу файлов с одного компьютера на другой. Передача файлов должна функционировать, даже если, клиент(сервер) используют прокси, а кроме IP от прокси ничего не известно. Думал организовать через веб-сервер, примерно так(передача идет от сервера к клиенту):

1) сервер шлет пакет на Web-сервер, там он сохраняется;
2) клиент получает уведомление, принимает пакет, шлет уведомление о получении на Web-сервер;
3) сервер получает уведомление о получении и шлет следующий пакет...

Весь алгоритм идет через Web-сервер. Но боюсь, будет нагрузка на веб-сервер и бузу данных. И скорость передачи будет не низкой.

Что посоветуете?

VKHacker Вопрос закрыт (ответы не принимаются, мини-форум закрыт)

Вопрос задал: VKHacker (статус: 1-ый класс)
Вопрос отправлен: 23 февраля 2011, 09:41
Состояние вопроса: закрыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 23 февраля 2011, 13:16; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 23 февраля 2011, 10:54 [#1]:

смотря что передается. и какими пакетами будет идти обмен данными.
В целом, тут вебсервер - это перебор, тут обычный сервер нужно делать.

Многие программы именно так и делают, но только делают это с умом. Они вначале проверяют, нет ли у одного с клиентов выделенного адреса или симметричного NAT. Или не находятся ли клиенты случайно в одной сети. С другой стороны, можно обойтись маленьким сервером - если сеть компов, которые участвуют в сети большая, то среди них всегда можно найти такие, которые имеют выделенный адрес и использовать их как промежуточный сервер, разгрузив тем самым свои сервера.

Но все это изобретено давно, называется BitTorrent:)
Галочка "подтверждения прочтения" - вселенское зло.
VKHacker

VKHacker (статус: 1-ый класс), 23 февраля 2011, 11:59 [#2]:

Допустим. Я хочу отправить вам файл размером 1 MB. У меня прокси. У вас прокси.

Реальный IP нужно определять?

Например, я делал передачу на сокетах (idtcpserver, idtcpclient). Там требуется у клиента указывать ip сервера. А у сервера IP клиента. И порты.

Думаю, что если определить IP программно у сервера и у клиента, обменяться информацией через сайт, то дальше можно через сокеты передать.

Но, если на одном компьютере несколько сетевых карт, то как определить нужный IP?
Вадим К

Вадим К (статус: Академик), 23 февраля 2011, 13:16 [#3]:

Цитата (VKHacker):

Но, если на одном компьютере несколько сетевых карт, то как определить нужный IP?

Открою секрет - даже на одной сетевой карте может быть десяток IP. Это абсолютно нормально. Поэтому не нужно мыслить категорией "сетевая карта".

Когда подключаетесь к серверу, то у подключения есть понятия адрес подключившейся стороны. Я точно не помню имя, нужно поискать в свойствах idtcpclient. Хотя зачем его обычно знать, если обмен идет через сервер - не знаю.
Галочка "подтверждения прочтения" - вселенское зло.

26 февраля 2011, 19:59: Статус вопроса изменён на решённый (изменил автор вопроса — VKHacker)

26 февраля 2011, 20:03: Вопрос закрыт (решение принял автор вопроса — VKHacker): Решил вопрос сам.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 27 марта 2023, 09:41
Выполнено за 0.02 сек.
Рейтинг@Mail.ru