Совет по Kotlin, java

Всем привет!)
Начну по сути.
Хочу "вайти в айти", но самостоятельно...
Для себя выбрал язык Kotlin и Java
Все купцы от всяких скилл боксов и другие гигбрейков считаю обманом, хочу погрузиться самостоятельно, в Ютубе смотрю некоторые ролики, целые курсы по Котлин.
Решил поставить себе задачу, написать свое VPN положение, есть сервер уже в аренде и прочее, но хочу и свой клиент который могу загрузить в Гугл плей.
Я могу создать первый экран стартовый, нарисовать все кнопки и иконки, прикрутить всякие свисто-перделки, но как сделать алгоритм который при нажатии кнопки "connect" соединял пользователя с сервером в другой стране.
Все вопросы в Гугле ведут на такие запросы "как сделать свой vpn сервер", он ищет ключевое слово ВПН, и выдает обычные статьи как настроить VPS, но не понимает, что я хочу от него совсем другое.
Помогите, пожалуйста с моим запросом, я уверен, что уже существует какой-то код, куда я ставлю IP своего сервера и при нажатии кнопки он соединит пользователя.

Проект не коммерческий, просто хочу написать свое приложение, учатся на практике, стоит задача, сделать свой клиент. Вот и делаю))
Спасибо, что выдержали этот сумбур, буду ждать советов!

6
Автор поста оценил этот комментарий

Привет!

Если хочешь вкатиться в айти на котлин и джава, то в качестве первого проекта vpn клиент действительно не очень идея, т.к. в основном на собеседованиях на позицию джава джуна будут спрашивать свосем другие вещи и из сетевых технологий, максимум что спросят, так это про http и https.

В целом если есть цель вкатится, то в первую очередь, я бы порекомендовал всё таки определиться в какую сторону копать: Java или kotlin. Да, языки синтаксически похожи, да и вообще они очень родственны, вплоть до того, что IDE может даже конвертировать код из джавы в котлин и наоборот, но все таки сферы применения у них немножко разные (Java - бэкэнд больших энтерпрайзных систем, котлин - андроид приложения и тоже бекэнд, но менее распространен).

Если выберешь джаву, то советую в первую очередь все таки хорошо изучить Java Core (вот, например, замечательный плейлист: https://www.youtube.com/playlist?list=PLm2nrlGYLq1Uv1qYpqMC0...), а затем потихоньку переходить к Spring фреймворку (читать всякие гайды тут: https://spring.io/guides , и тут: https://www.baeldung.com/). Параллельно с этим стоит почитать про SQL (язык запросов к базам данных), какие системы управления базами данных вообще есть и какая между ними разница (PostgreqSQL, MySQL и т.д.), почитать про докер и немножко с ним побаловаться(на ютубе есть много хороших русскоязычных гайдов) ну и собственно из сетевых технологий прочитать про HTTP, как он вообще работает, как выглядят запрос и ответ к серверу и немножко почитать про авторизацию.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо, Вы лучший!
1
Автор поста оценил этот комментарий
Не нужно такое писать для самого себя , слишком сложный процес , много всего нужно знать в теории. Начните с написания клиенсткого и серверного приложений, которые по http обмениваются данными (строками, файлами). Используйте существующие библиотеки, фреймворки (никто не пишет это с нуля, все уже давно написано). Добавьте в эту схему состояние (базу данных) - сделайте трех-звенную архитектуру. Замерьте производительность (количество запросов в секунду). Подумайте / погуглите как это оптимизировать.
Этот пример намного ближе к реальным задачам , которые решают большинство разработчиков.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я вообще думал, что ВПН это готовое решение.
Типа арендуешь несколько серверов и сдаешь их пользователю, он условно нажал пуск и его подключают по определенному уже готовому решению, просто это решение ты где-то качаешь, записываешь в свое приложение и встраиваешь в кнопку, а там уже магия )
Так как видно, что впнов много и все работают они одинаково, только визуально отличаются (исключая всякие профессиональные, где действительно все шифруют и не хранят логи)
показать ответы
4
Автор поста оценил этот комментарий

Добрый день.

Я больше сетевик, и в меньшей степени devops.

Но план следующий (от малого к большему).

1. Попытаться от клиента передать слово серверу.

2. Попытаться передать от клиента файлик серверу.

3. Включить функцию, которая зашифрует сначала наше слово, потом наш файлик.

4. Чтобы vpn заработал, нужно создать виртуальный интерфейс на который будут посылаться данные. Для начала можно передавать простейшие dns пакеты.

5. Встаёт вопрос, что сначала это будет работать как proxy сервер DNS.

6. Потом как NAT программа. Чтобы твои запросы замаскировать ip адресом сервера.

7. Встаёт вопрос заворачивания всего трафика в этот виртуальный интерфейс.

Это значит первый этап.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо Вам, очень полезный совет, так и попробую
1
Автор поста оценил этот комментарий
Не нужно такое писать для самого себя , слишком сложный процес , много всего нужно знать в теории. Начните с написания клиенсткого и серверного приложений, которые по http обмениваются данными (строками, файлами). Используйте существующие библиотеки, фреймворки (никто не пишет это с нуля, все уже давно написано). Добавьте в эту схему состояние (базу данных) - сделайте трех-звенную архитектуру. Замерьте производительность (количество запросов в секунду). Подумайте / погуглите как это оптимизировать.
Этот пример намного ближе к реальным задачам , которые решают большинство разработчиков.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо Вам, очень помогли.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества