Несколько лет назад я написал программу для 1-й фирмы, которая позволяла сохранять файлы с удалённого компютера на серверах этой фирмы. Для этого я использовал DirectX 9 beta version (DirectPlay функцию) для C#, т.к. он позволял передавать файлы не только через Internet, но и с помощью телефонной линии. Сейчас у них начались какие-то проблемы и я решил запустить программу у себя и оказалось, что DirectPlay уже не используется в DirectX, и Microsoft советует использовать другие технологии. Кроме того фирма решила отказаться от использования телефонной линии для передачи файлов. Так что я решил искать только те технологии которые позволяли бы еффективно и быстро передавать файлы через интернет. Поискав в Interenet-е я нашёл что большинство примеров и советов относится к .NET Remoting и SOAP. В связи с этим у меня очень простой вопрос.
Действительно ли эти технологии наиболее эффективные для пересылки данных по Internet-у или есть более эффективные средства для пересылки данных?
Здравствуйте, <Аноним>, Вы писали:
А>Действительно ли эти технологии наиболее эффективные для пересылки данных по Internet-у или есть более эффективные средства для пересылки данных?
Задача сформулирована неконкретно, посему достоверный ответ на вопрос дать невозможно.
Здравствуйте, Tom, Вы писали:
А>>Действительно ли эти технологии наиболее эффективные для пересылки данных по Internet-у или есть более эффективные средства для пересылки данных?
Tom>Нет, самый эфкктивный для интернет способ — использование протокола FTP
А чем не угодил http? Там тоже можно качать бинарные данные.
Re[2]: Remote File Backup - реализация
От:
Аноним
Дата:
22.12.05 11:28
Оценка:
Здравствуйте, akasoft, Вы писали:
A>Здравствуйте, <Аноним>, Вы писали:
А>>Действительно ли эти технологии наиболее эффективные для пересылки данных по Internet-у или есть более эффективные средства для пересылки данных?
A>Задача сформулирована неконкретно, посему достоверный ответ на вопрос дать невозможно.
Приношу свои извенения если сформулировал неверно вопрос. Моя обычная работа очень слабо связана с Internet-ом, но я был знаком с DirectX. Поэтому и сделал программу с её помощью. Программа в принципе своём очень простая. На клиенте сидит аппликация, которая просыпается, в зависимости от установок, в определёное время, пробегает по выбранным директориям, проверяет, когда была последняя модификация нужных файлов. Если дата позже последнего backup-а, то начинается пересылка данных на сервер через Internet или телефонную линию.
А сейчас мне надо быстро заменить DirectPlay чем то что выполняло бы ту же работу по передаче данных и позволяло бы удостоверится что передача данных удачно завершилось. При этом, чтобы данные от одного клиента не мешали данным от другого клиента, если вдруг они решать передавать одновременно.
Как я уже сказал, я плохо разбираюсь в Internet-технологиях, и мне нужно знать на какие технологии стоит особо обратить внимание, чтобы решить мою проблему. Конечно, если кто-то знает уже готовый source, который помог бы мне реализовать мою задачу, то это очень помогло бы мне. Но это не обязательно, достаточно сказать что именно искать.
После вашего предложения использовать http или ftp протокол, я поискал в инете и нашёл, что можно использовать Socket-ы и Tcp протокол. Что вы об этом думаете?
Здравствуйте, GoldDragon, Вы писали:
GD>После вашего предложения использовать http или ftp протокол, я поискал в инете и нашёл, что можно использовать Socket-ы и Tcp протокол. Что вы об этом думаете?
Думаю, что писать свой простокол на основе сокетов на сегодняшний день — неблагодарное занятие. Используй FTP, для работы с ним из .NET есть средства.
Здравствуйте, Tom, Вы писали:
Tom>Здравствуйте, GoldDragon, Вы писали:
GD>>После вашего предложения использовать http или ftp протокол, я поискал в инете и нашёл, что можно использовать Socket-ы и Tcp протокол. Что вы об этом думаете?
Tom>Думаю, что писать свой простокол на основе сокетов на сегодняшний день — неблагодарное занятие. Используй FTP, для работы с ним из .NET есть средства.
Спасибо — сейчас как раз ищу литературу на эту тему
Здравствуйте, Tom, Вы писали:
Tom>Здравствуйте, GoldDragon, Вы писали:
GD>>После вашего предложения использовать http или ftp протокол, я поискал в инете и нашёл, что можно использовать Socket-ы и Tcp протокол. Что вы об этом думаете?
Tom>Думаю, что писать свой простокол на основе сокетов на сегодняшний день — неблагодарное занятие. Используй FTP, для работы с ним из .NET есть средства.
И ещё — я не знаю правильно ли я объяснил что именно мне нужно. Дело в том что сами файлы не будут пересылаться. Прежде чем пересылать файлы, они будут компресироваться и кодироваться. И только после этого — полученный результат будет пересылаться. Сможет ли FTP средства DOT.NET-а помочь в этом случае.
Здравствуйте, GoldDragon, Вы писали:
GD>И ещё — я не знаю правильно ли я объяснил что именно мне нужно. Дело в том что сами файлы не будут пересылаться. Прежде чем пересылать файлы, они будут компресироваться и кодироваться. И только после этого — полученный результат будет пересылаться.
Файл он и есть файл Или вы просто поток байт хотите передавать в сеть? Запакуйте, закодируйте, запишите в файл и передавайте себе на здоровье.
GD>Сможет ли FTP средства DOT.NET-а помочь в этом случае.
FTP он и есть FTP Есть классы, позволяющие пользоваться FTP из managed-кода, но ведь реализация его при этом не меняется.
Здравствуйте, hugo, Вы писали:
H>Здравствуйте, GoldDragon, Вы писали:
GD>>И ещё — я не знаю правильно ли я объяснил что именно мне нужно. Дело в том что сами файлы не будут пересылаться. Прежде чем пересылать файлы, они будут компресироваться и кодироваться. И только после этого — полученный результат будет пересылаться.
H>Файл он и есть файл Или вы просто поток байт хотите передавать в сеть? Запакуйте, закодируйте, запишите в файл и передавайте себе на здоровье.
GD>>Сможет ли FTP средства DOT.NET-а помочь в этом случае.
H>FTP он и есть FTP Есть классы, позволяющие пользоваться FTP из managed-кода, но ведь реализация его при этом не меняется.
Спасибо.
Я в принципе так и собираюсь это реализовать. Просто сейчас я пытаюсь найти, как реализовать Server, чтобы он мог одновременно принимать файлы от разных клиентов, если такое вообще возможно.