| 
| 
 | Вопрос # 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): Решил вопрос сам. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |