|
Вопрос # 5 049/ вопрос закрыт / |
|
Приветствую, уважаемые эксперты!
Требуется организовать передачу файлов с одного компьютера на другой. Передача файлов должна функционировать, даже если, клиент(сервер) используют прокси, а кроме IP от прокси ничего не известно. Думал организовать через веб-сервер, примерно так(передача идет от сервера к клиенту):
1) сервер шлет пакет на Web-сервер, там он сохраняется;
2) клиент получает уведомление, принимает пакет, шлет уведомление о получении на Web-сервер;
3) сервер получает уведомление о получении и шлет следующий пакет...
Весь алгоритм идет через Web-сервер. Но боюсь, будет нагрузка на веб-сервер и бузу данных. И скорость передачи будет не низкой.
Что посоветуете?
 |
Вопрос задал: VKHacker (статус: 1-ый класс)
Вопрос отправлен: 23 февраля 2011, 09:41
Состояние вопроса: закрыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 23 февраля 2011, 13:16; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 23 февраля 2011, 10:54 [#1]:
смотря что передается. и какими пакетами будет идти обмен данными.
В целом, тут вебсервер - это перебор, тут обычный сервер нужно делать.
Многие программы именно так и делают, но только делают это с умом. Они вначале проверяют, нет ли у одного с клиентов выделенного адреса или симметричного NAT. Или не находятся ли клиенты случайно в одной сети. С другой стороны, можно обойтись маленьким сервером - если сеть компов, которые участвуют в сети большая, то среди них всегда можно найти такие, которые имеют выделенный адрес и использовать их как промежуточный сервер, разгрузив тем самым свои сервера.
Но все это изобретено давно, называется BitTorrent
Галочка "подтверждения прочтения" - вселенское зло.
|
|
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): Решил вопрос сам.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|