Небольшое теоретическое введение по сокетам и сетевым взаимодействиям. Тестовые приложения: клиент и сервер. ОС: Windows. С применением: Windows Sockets.
По воле учебы пришлось изучать сокеты и клиент-сервер. Видео прекрасно помогло как теоретически разобраться в происходящем, так и реализовать на практике полученные знания. Автору большое спасибо!
Роман, у тебя талант, так доходчиво и ясно всё. Огромное спасибо! Лайк и подписка! Только я посмею свои 5 копеек вставить, файл cpp, а из плюсов там только вывод на консольке (пишет человек который на плюсах ещё ничего не написал, только книжки читает. )
Роман, написал по вашему примеру реализацию клиента и сервера. Все здорово. Для меня, как для новичка, информация очень полезна. Но у меня вопрос, как сделать если я хочу чтобы программа оставалась в активном режиме и продолжала отправлять сообщения (например, после их обновления в json-файле)?
*Сергей Богданов* Так-же как и строку передаёте потому, что фактически по стандарту по сети можно передавать только строки. Но предварительно преобразовав переменные и их значения в JSON строку.
а как связать компьютеры не в одной сети, а через глобальную сеть? в пределах домашнего wifi работает а уже с другом на другой улице связь установить не получается
Как вариант - нужны белые IP (когда вам выделяется не IP внутри локалки вашего провайдера, а IP, видимый глобально). Многие провайдеры за символическую плату (у меня домашний провайдер берет дополнительно 100р. в месяц) может вам такой выделить. Дальше опять варианты. Например, у меня на входе висит роутер, на нём стоит VPN-сервер, который может пустить внешний компьютер в вашу внутреннюю локалку (при помощи VPN-клиента).
я пробую написать небольшую игру с разными комнатами у меня есть хостинг, и от туда в будущем можно будет скачать эту игру ). так вот пользователь скачивает игру и запускает ее, игра обращается к хостингу и там определяется ip. Далее игрок выбирает комнату и ему в обратную сторону передаются ip игроков из этой комнаты (до 10 игроков на комнату). И дальше обмен данными уже идет между игроками без хостинга. Локально это работает, игра еще не готова, но все передачи данных я уже проверил. А вот глобально не работает. ip с хостинга я получаю, а связать компьютеры не могу. Белый ip не подходит так как этим могут пользоваться кто угодно. Есть какие то варианты как связать компьютеры для моей цели? к стати, если будет интересно, у меня тоже есть видео на моем канале )) ua-cam.com/video/HE93SaN3iGo/v-deo.html
@@RomanPushkov спасибо, всё получилось, но есть ещё вопрос, как сделать так, чтобы к серверу подключался не один клиент, а несколько клиентов? заранее спасибо
@@ДаниилФирсов-ч6и делать listen в цикле, а взаимодействие с принятым сокетом вынести в отдельный поток. Ну или использовать асинхронную работу с сокетами, что является темой отдельного разговора )
По воле учебы пришлось изучать сокеты и клиент-сервер. Видео прекрасно помогло как теоретически разобраться в происходящем, так и реализовать на практике полученные знания. Автору большое спасибо!
Отличное видео для новичков, мне понравилось, что автор объяснял практически все. Так что час времени потрачен не зря)
Как же хорошо что в интернете есть видео, такие как это.
Спасибо!
Дай бох вам здоровья, мега полезное видео.
Большое спасибо, Добрый (и умный) человек!
Роман, у тебя талант, так доходчиво и ясно всё. Огромное спасибо! Лайк и подписка!
Только я посмею свои 5 копеек вставить, файл cpp, а из плюсов там только вывод на консольке (пишет человек который на плюсах ещё ничего не написал, только книжки читает. )
Спасибо за видео. Жаль, что на канале больше не появлялось следующих обучающих видеоматериалов
Спасибо большое!!!
Роман, написал по вашему примеру реализацию клиента и сервера. Все здорово. Для меня, как для новичка, информация очень полезна. Но у меня вопрос, как сделать если я хочу чтобы программа оставалась в активном режиме и продолжала отправлять сообщения (например, после их обновления в json-файле)?
Спасибо!
спасибо
Роман, а ты можешь показать реализацию передачи данных между приложениями по протоколу MQTT. Буду очень признателен
есть ли видео про многопточность на с++? например этот же сокет-сервер с слушателем на отдельном потоке?
Из-за чего в консоли может не выводиться текст "Hello from server!"? Код проверяла несколько раз, но всё равно не выводит. Пишет только Sent: 18 bytes
Not Set влияет только на TCHAR. Если не использоваться TCHAR то и разницы никакой не будет. Неверно?
как передать значения переменных по сети?
*Сергей Богданов*
Так-же как и строку передаёте потому, что фактически по стандарту по сети можно передавать только строки. Но предварительно преобразовав переменные и их значения в JSON строку.
@@Erudite. сможете показать пример?
а как связать компьютеры не в одной сети, а через глобальную сеть?
в пределах домашнего wifi работает
а уже с другом на другой улице связь установить не получается
Как вариант - нужны белые IP (когда вам выделяется не IP внутри локалки вашего провайдера, а IP, видимый глобально). Многие провайдеры за символическую плату (у меня домашний провайдер берет дополнительно 100р. в месяц) может вам такой выделить.
Дальше опять варианты. Например, у меня на входе висит роутер, на нём стоит VPN-сервер, который может пустить внешний компьютер в вашу внутреннюю локалку (при помощи VPN-клиента).
я пробую написать небольшую игру с разными комнатами
у меня есть хостинг, и от туда в будущем можно будет скачать эту игру ).
так вот пользователь скачивает игру и запускает ее, игра обращается к хостингу и там определяется ip. Далее игрок выбирает комнату и ему в обратную сторону передаются ip игроков из этой комнаты (до 10 игроков на комнату). И дальше обмен данными уже идет между игроками без хостинга.
Локально это работает, игра еще не готова, но все передачи данных я уже проверил. А вот глобально не работает. ip с хостинга я получаю, а связать компьютеры не могу.
Белый ip не подходит так как этим могут пользоваться кто угодно.
Есть какие то варианты как связать компьютеры для моей цели?
к стати, если будет интересно, у меня тоже есть видео на моем канале ))
ua-cam.com/video/HE93SaN3iGo/v-deo.html
6:58
LNK2019 что делать с этой ошибкой подскажите пожалуйста
Зависит от того, что там в этой ошибке. Либо ws2_32.lib забыли подключить, либо где-то со своими функциями проблема.
@@RomanPushkov а при настройке решения нужны библиотеки kernel32.lib, user32.lib и все остальные которые у вас подключены, у меня просто их нет?
@@ДаниилФирсов-ч6и kernel, user, gdi автоматом подключаются, по идее.
@@RomanPushkov спасибо, всё получилось, но есть ещё вопрос, как сделать так, чтобы к серверу подключался не один клиент, а несколько клиентов? заранее спасибо
@@ДаниилФирсов-ч6и делать listen в цикле, а взаимодействие с принятым сокетом вынести в отдельный поток. Ну или использовать асинхронную работу с сокетами, что является темой отдельного разговора )
из за тебя рабочий проект накрылся
🥸