Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
1

Нужна консультация специалиста

09.08.2013, 11:09. Просмотров 1574. Ответов 26
Метки нет (Все метки)

Я разработал приложение для удалённого контроля компом с мобильного, на подобии TeamViewer'a
Принцип:
1) Клиентская часть(под Android и JAVAME)
2) Сервер для ПК, написанный на C# Net 2.0
3) Мой сайт, хранящий аккаунты.

Запускается сервер, он выгружает на сайт IP и клиент по логину паролю подключается к компу:
Проблема №1:
- Роутеры и фаерволы. Нужно настраивать порты и выбирать какой IP использовать(внутренний(если без роутера)или внешний)
Решение:
Могу перекодить проект так, что сервером будет приложение под телефон, а комп - клиентом. Снаружи конект будет выглядеть так же, но только будет пофик на роутеры и фаерволы.

Проблема №2:
- есть периодическая(даже частая) невозможность подключиться ни к компу с телефона, ни наоборот, при чем Интернет и все остальные проги на телефоне и ПК работают правильно. Причина - неизвестная, то работает, то нет.
Решение:
Друг советует арендовать выделенный сервер, и коннектить телефон к ПК через него, при этом никаких технических деталей(а именно, что надо кодить) он не знает.

Цель - стабильный 100% коннект, без гемора с роутерами и фаерволами.

Так как в этой ветке висят прогромисти, то я решил напостить здесь. Или может как-то по другому это сделать, на ASP.Net, например. В общем, нужен мудрый совет с техническими деталями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2013, 11:09
Ответы с готовыми решениями:

Нужна консультация по использованию компонента PDF Expert
Всем - привет! Если не в той теме пишу - поправьте. Есть саит, сделанный на...

Консультация по архитектуре UI приложения
Здравствуйте! Не знаю реально ли, но может кто-то откликнется. Реализую...

Разработка АРМ специалиста по ремонту телефонов
Добрый вечер. Делаю курчач, хочу попросить помощи и совет. Хочу сделать...

Требуется консультация по структуре классов и таблиц
Здравствуйте, вопрос скорее всего банальный для "знающих", но пока не смог...

Срочно нужна консультация знающих людей
Привожу пример: Это файл index.asp <html> <head><title>Тестовая...

26
Good1101
53 / 53 / 10
Регистрация: 28.12.2011
Сообщений: 259
09.08.2013, 17:19 2
Цитата Сообщение от MegaSinner Посмотреть сообщение
Друг советует арендовать выделенный сервер, и коннектить телефон к ПК через него, при этом никаких технических деталей(а именно, что надо кодить) он не знает.
Ставите ваш сервер на арендованный сервер, а домашний ПК и телефон будут клиентами, которые сами будут подключатся к серверу...
0
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
09.08.2013, 18:31  [ТС] 3
Цитата Сообщение от Good1101 Посмотреть сообщение
Ставите ваш сервер на арендованный сервер, а домашний ПК и телефон будут клиентами, которые сами будут подключатся к серверу...
Это понятно, но как связать 2 клиента(телефон и ПК)? Если сервер(что на выделенном) будет посредником, а весь трафик будет проганяться через него, то скорость/=2.
На ПК не должно быть входящих подключений, ибо это гемор с роутерами и фаерволами.
0
Good1101
53 / 53 / 10
Регистрация: 28.12.2011
Сообщений: 259
10.08.2013, 00:18 4
Цитата Сообщение от MegaSinner Посмотреть сообщение
скорость/=2.
скорость не должна пострадать, в некоторых случаях может быть даже лучше.
Цитата Сообщение от MegaSinner Посмотреть сообщение
На ПК не должно быть входящих подключений, ибо это гемор с роутерами и фаерволами
сервер - компюьютер с открытым ип. настроенными фаеволами и тп.

в конце концов у вас просто администрирование пк, а не сетевой шутер с десятками тысяч подключений, скорость не так важна.
1
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
10.08.2013, 13:20  [ТС] 5
Получилось написать сервер на asp.net, но он пока принимает только одно подключение. Как сделать чтобы > 1? Я так понимаю, надо куча потоков с листенерами и отдельный порт для каждого??
0
phantom96
MЫW
124 / 109 / 9
Регистрация: 15.02.2013
Сообщений: 538
10.08.2013, 15:15 6
Цитата Сообщение от MegaSinner Посмотреть сообщение
Получилось написать сервер на asp.net, но он пока принимает только одно подключение. Как сделать чтобы > 1? Я так понимаю, надо куча потоков с листенерами и отдельный порт для каждого??
Порта и 1 хватит на приём. Посмотрите на тему асинхронных сокетов.
0
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
10.08.2013, 15:57  [ТС] 7
Цитата Сообщение от phantom96 Посмотреть сообщение
асинхронных сокетов.
Если я правильно понял, то это подразумевает очередь при передачи данных, а значит не покатит такой вариант.
0
phantom96
MЫW
124 / 109 / 9
Регистрация: 15.02.2013
Сообщений: 538
10.08.2013, 16:02 8
Это подразумевает независимость одного подключения от другого.
1
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
11.08.2013, 13:56  [ТС] 9
phantom96, с асинхнонностью разобрался..
Ещё вопрос: для передачи скринов на сервере нужен буфер, допустим, 1 МБ(с запасом).
Получается для одного юзера выделяется 1 МБ RAM-ки. А если их будет огого? - Не хватит мощностей?
(сервер будет посредником и весь трафик будет прогоняться через него. Надо ещё уточнить пропускную способность в хостинг-провайдера)
0
phantom96
MЫW
124 / 109 / 9
Регистрация: 15.02.2013
Сообщений: 538
11.08.2013, 14:20 10
Трафик не стоит гнать через сервер. Иначе мощности реально очень быстро закончатся. Вам нужно создать виртуальный туннель между пользователями чтобы гнать трафик напрямую через него. По этой теме сам особо много не знаю, если кто подскажет про туннели буду очень благодарен. А на счёт пропускной способности: все хостинги поголовно пишут про 100 мбит канала, но когда эти 100 мбит загружены постоянно на 100% хостинги начинают считать трафик вирусным, даже если он нормальный. Тут уже вам надо уточнять такие моменты.
1
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
11.08.2013, 21:50  [ТС] 11
Цитата Сообщение от phantom96 Посмотреть сообщение
виртуальный туннель
Это типа VPN?

Не по теме:

Эх, знать бы как той тим вьювер подключет компы, а скайп - это вообще дьявольски хитрая программа...

0
phantom96
MЫW
124 / 109 / 9
Регистрация: 15.02.2013
Сообщений: 538
11.08.2013, 21:55 12
Да, типа VPN. Но в той же например гарене виртуальное туннелирование сделано без создания сетей в Windows. Скайп сначала подключает через свой сервер потом напрямую.
0
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
12.08.2013, 10:30  [ТС] 13
Цитата Сообщение от phantom96 Посмотреть сообщение
потом напрямую.
каким образом, не знаете?
0
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
17.08.2013, 14:45  [ТС] 14
Ещё одна проблема:
пишу что-то типа маршрутизатора с асинхронными сокетами...
Есть сервер, к нему подключается комп и передает логин, затем телефон и тоже передает логин.
Потом сервер находить пару и передает должен передать айпишник телефона компу. Вот часть этой функции:
C#
1
2
3
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(only_pc_ip), int.Parse(only_pc_port));
byte[] tosend = Encoding.UTF8.GetBytes("phip!]" + ip);
Sock.SendTo(tosend, iep);
Айпишник и порт компа правильные. Оно не крешится, но и на комп ничего не приходит. В чём я ошибаюсь?

Добавлено через 13 часов 36 минут
такое впечатление, будто-бы асинхронные сокеты могут отправлять данные только последнему подключенному клиенту
0
pincet
1328 / 916 / 123
Регистрация: 23.07.2010
Сообщений: 4,988
17.08.2013, 17:01 15
WaitOne() должен помочь отцу русской демократии
Вообще для первого знакомства с сокетами мне помогла TCP/IP sockets in c# by David B. Makofske, Michael J. Donahoo, Kenneth L. Calvert
0
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
18.08.2013, 13:07  [ТС] 16
pincet,
"WaitOne()":
1) Что это?
2) Куда прикрутить?
3) Как оно может помочь?

Добавлено через 18 часов 30 минут
"WaitOne()" это задержка потока, которая тут до фени. Попробую создать массив сокетов..

Добавлено через 9 минут
Слава яйцам, проблема отправки данных решена созданием массива сокетов. Но теперь вопрос: можно ли создать динамически расширяемый массив сокетов и как?
0
Anklav
442 / 301 / 46
Регистрация: 23.01.2013
Сообщений: 640
Завершенные тесты: 2
18.08.2013, 13:38 17
Эмм, а в чем проблема?
Про List<Socket> забыли?
1
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
18.08.2013, 17:17  [ТС] 18
Anklav, афигеть, то, что надо.

Добавлено через 3 часа 6 минут
Такой вопрос ещё: а можно ли как-то сохранить сокет в файл, а потом при необходимости восстановить и работать с ним? (их будет много, чтобы памяти меньше жрало на сервере..)
0
phantom96
MЫW
124 / 109 / 9
Регистрация: 15.02.2013
Сообщений: 538
18.08.2013, 17:36 19
Цитата Сообщение от MegaSinner Посмотреть сообщение
Anklav, афигеть, то, что надо.

Добавлено через 3 часа 6 минут
Такой вопрос ещё: а можно ли как-то сохранить сокет в файл, а потом при необходимости восстановить и работать с ним? (их будет много, чтобы памяти меньше жрало на сервере..)
Сохранить то можно, только загрузить что-то дельное у вас врядли получится.
0
Anklav
442 / 301 / 46
Регистрация: 23.01.2013
Сообщений: 640
Завершенные тесты: 2
18.08.2013, 17:53 20
Ip адрес и порт запишите в файл, а потом заново создайте сокет и приконнектитесь к этому адресу.
Или я не совсем правильно понял что означает сохранить сокет в файл?

C#
1
2
3
            Socket s;
            IPAddress a = ((IPEndPoint)s.RemoteEndPoint).Address;
            int port = ((IPEndPoint)s.RemoteEndPoint).Port;
0
18.08.2013, 17:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2013, 17:53

Binding: нужна консультация
Доброго времени суток, уважаемые участники форума! Нахожусь в стадии изучения...

Нужна консультация специалиста
Приобрёл я впервые нормальную видеокарту PowerColor HD7870, вопрос стоит в том,...

нужна консультация специалиста по индексации
пишите пожалуйста в аську 230885628 или на почту melyna@mail.ru очень нужна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru