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