Артем
Опытный
Offline
Пол:
Beware the wolf in sheep's clothing.
|
|
« : 13-01-2009 07:38 » |
|
День/вечер добрый! Задача: Написать прогу которая передает файл с одного смарта на другой по Wi-Fi, без всяких там hot-спотов, т.е. есть только два телефона и все. Я понимаю, что это, ближе к разделу "Embedded systems", но мне кажеться что принцип одинаковый для любых устройств. Т.е. надо: 1. одно устройство заставить работать как точку доступа 2. со второго уст-ва подключиться к этой точке доступа Кто-нибудь делал это программным способом? На чем-нибудь, хоть на телефонах, хоть на винде. P.S. Тему про соединение двуx ноутов прочитал, http://www.wificard.ru/section.php?docId=3465 -- не подходит Надо написать именно прогу, которую ставишь на два устр-ва и она общается по Wi-Fi.
|
|
|
Записан
|
|
|
|
McZim
|
|
« Ответ #1 : 13-01-2009 07:57 » |
|
1. Тебе нужно определиться какие уровни стека TCP/IP задействованы в wi-fi сетях. 2. Тебе нужно придумать или найти протокол общения для твое проги. 3. Ну и вообще разобраться с технологией передачи данных в wi-fi.
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #2 : 13-01-2009 08:12 » |
|
Артем, wifi конечных устройств могут работать без точки доступа - в режиме точка-точка. Это не программная задача, а административная - нужно настроить соотв. соединение, если эти смартфоны это позволяют.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Артем
Опытный
Offline
Пол:
Beware the wolf in sheep's clothing.
|
|
« Ответ #3 : 13-01-2009 11:14 » |
|
Спасибо за ответы Т.к. мне нужно чтоб все это делала программа, буду копать в следующем направлении: 1. научиться настраивать нужное соединение (из программы) 2. Найти подходящий протокол ( FTP? )
|
|
« Последнее редактирование: 13-01-2009 11:39 от Артем »
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #4 : 13-01-2009 13:26 » |
|
Артем, это учебная задача или коммерческая, или просто так поразвлекаться?
Если учебная или поразвлекаться, то можно. Если коммерческая, то, IMHO, не стоит - гораздо удобнее решить задачу административными средствами операционных систем.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Артем
Опытный
Offline
Пол:
Beware the wolf in sheep's clothing.
|
|
« Ответ #5 : 14-01-2009 07:15 » |
|
dimka, далеко не всякий пользователь смарта сможет настроить административными средствами точку доступа Wi-Fi (более того, есть телефоны, у которых нет встроенных средств для этого). А задача -- "написать прогу, которая обменивается данными по Wi-Fi между двумя телефонами" стоит. Но это, действительно, учебная задача
|
|
|
Записан
|
|
|
|
McZim
|
|
« Ответ #6 : 14-01-2009 07:24 » |
|
более того, есть телефоны, у которых нет встроенных средств для этого
это бред, если нет средств, то собственно и нет модуля wi-fi.
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Артем
Опытный
Offline
Пол:
Beware the wolf in sheep's clothing.
|
|
« Ответ #7 : 14-01-2009 07:47 » |
|
это бред, если нет средств, то собственно и нет модуля wi-fi.
например на SE P990i есть Wi-Fi. И как клиент он замечательно коннектиться к точкам доступа. И даже можно выставить режим ad-hos. Но для этого режима нельзя назначить ip адрес вручную (вот такие там стоят "стандартные средства" ) . Он пытается получить ip автоматически, и не получает -> и запустить его как точку доступа не удается. На Нокиа (по крайней мере на N и E сериях) можно прописать ip вручную и все работает.
|
|
« Последнее редактирование: 14-01-2009 07:55 от Артем »
|
Записан
|
|
|
|
McZim
|
|
« Ответ #8 : 14-01-2009 07:57 » |
|
Артем, а может стоит обновить прошивку?
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Артем
Опытный
Offline
Пол:
Beware the wolf in sheep's clothing.
|
|
« Ответ #9 : 14-01-2009 08:05 » |
|
может Но, С точки зрения учебной задачи -- мне вообще все равно можно ли это решить стандартными средствами. С точки зрения коммерческой: 1. Не всякий заказчик/пользователь сможет/захочет настраивать точку доступа из-за одной проги. 2. Если он и станет это делать и у него не получиться, то у меня, скорее всего, даже не будет возможности сказать ему "Обнови прошивку" или "Попробуй другой Ip". И на прогу повесят ярлык "Не работает".
|
|
« Последнее редактирование: 14-01-2009 08:07 от Артем »
|
Записан
|
|
|
|
McZim
|
|
« Ответ #10 : 14-01-2009 08:10 » |
|
Артем, прошивка проще чем писать свое ПО для телефона, ты писал? знаешь подводные камни, знаешь что за платформа на борту? и т.д. Ты написав свое ПО, так или иначе вносишь изменения в прошивку (т.е. ты ведь хочешь поменять поведение стандартных функций).
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #11 : 14-01-2009 11:46 » |
|
1. Не всякий заказчик/пользователь сможет/захочет настраивать точку доступа из-за одной проги. Аргумент принят. Но! Если ты хочешь избавить пользователя от необходимости знать, как всё это работает, то ты пока слишком углублён в технические вопросы, хотя это проблема уровня архитектуры. Нужно ответить на вопросы: - как одно устройство будет находить другое нужное устройство в окружающем пространстве, нужен ли тут пользователь, и если нужен, то как ему выдать информацию попроще, чтобы он сделал выбор; - как они друг с другом договорятся о взаимно подходящих настройках для приёма/передачи файлов; - откуда и куда будут передаваться файлы, и каково участие пользователя в этом процессе, проблемы одинаковых файлов; - как эти задачи ложатся на техническую инфраструктуру, которая параллельно может быть занята другими задачами - как делить ресурсы с другими программами; и т.д., и т.п.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Артем
Опытный
Offline
Пол:
Beware the wolf in sheep's clothing.
|
|
« Ответ #12 : 15-01-2009 07:17 » |
|
McZim, dimka, всё верно Но для меня, в настоящее время, это Но это, действительно, учебная задача
|
|
« Последнее редактирование: 15-01-2009 07:29 от Артем »
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #13 : 15-01-2009 11:10 » |
|
Артем, учебная задача написания программы? Твоя программа является составной частью программно-аппаратной системы. Причём не стандартной системы (о чём тебе говорили, когда советовали решать задачу административными средствами), а тобою выдуманной. Так вот, пока не решены вопросы системной архитектуры, твоей программе просто нечего будет делать - требования к ней настолько неполные, что написать хоть что-нибудь не получится.
В начале ты должен описать систему. Пусть предельно простую и практического смысла не имеющую, но такое описание и понимание быть должно. Должны быть сформулированы условия, утверждения и разные инварианты, которые нужны для твоей системы.
И это описание можно сделать на полстранички обычным текстом, но оно должно быть.
Например, для простоты можно полагать, что: - имеются лишь два устройства, которые нужно соединить по Wi-Fi, и в пределах досягаемости никаких лишних устройств нет; - до начала работы устройства не используют никакие другие Wi-Fi соединения; и т.д., и т.п.
Всё подобные системные ограничения являются условиями работоспособности твоей программы.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
|
Артем
Опытный
Offline
Пол:
Beware the wolf in sheep's clothing.
|
|
« Ответ #15 : 06-02-2009 09:53 » |
|
В продолжение темы:
Есть два устройства (например два ноутбука с WiFi). Как уже выяснилось их можно соединить по WiFi, переведя один из них в режим ad-hoc(и задав необходимые параметры), а на втором подключиться к этой adhoc-сети. В этом случае, когда на втором ноутбуке мы запустим "Обновить список сетей" мы увидим подключение с первого ноутбука именно как "Сеть компьютер-компьютер" (peer2peer сеть).
Вопрос: можно ли как-нибудь (программными или/и административными средствами) сделать так, чтобы второй ноутбук увидел первый не как peer2peer сеть, а как точку доступа.
|
|
|
Записан
|
|
|
|
|