Страницы

Поиск по вопросам

суббота, 13 октября 2018 г.

Помогите осознать суть сетей [закрыт]

У меня есть два ноутбука. На них стоят ubuntu. Как создать программу на c++, которая по сети передает инфу с одного компа на другой. Что нужно знать для этого про сами компьютеры. Как это все происходит в сети. Верно ли, что у каждого устройства есть индивидуальный идентификатор, который позволяет его распознать в сети. Я не доконца понимаю суть, поэтому простите, если сказал глупость. Кинуть нужную литературу будет плюсом, но хотел бы краткое и ясное обьяснение от вас. Спасибо.


Ответ

Если очень в общем, то идентификатора может и не быть. Всё зависит от типа сети, протоколов и прочего.
Если совсем ничего не понимаете. Представьте. Есть провод, вы им соединили два компьютера. Теперь вам нужно передавать что-то по этому проводу. Какая проблема возникает первая? Не считая самой передачи, это как другому компьютеру понять что сообщение адресовано именно ему, когда закончится сообщение, целое ли оно, можно ли передавать, что делать в случае ошибки. В общем, как интерпретировать другому компьютеру то, что на него пришло. Вот вы и столкнулись с протоколами. Все эти правила оформления сообщений, передачи, приема называются протоколами. Хотя вы можете и сами придумать правила, и это тоже будет протокол.
Чаще всего передаётся что-то через интернет или через локальные сети, которые работают по тому же принципу. Вы вряд ли будете работать на нижних уровнях, скорее всего это будет протоколы UDP/TCP и IP. IP это тот протокол, который говорит нам, где искать компьютер, которому адресовано сообщение. Вам нужно знать IP адрес компьютера и порт (условно пусть порт - программа на компьютере, которая может отправлять или принимать данные). TCP отвечает за целостность данных, но обычно всё это есть готовенькое в виде библиотек.
Обычно пишутся две программы (или две части одной программы). Сервер - открывает некий порт (говорит, что этот порт принадлежит мне) и начинает его слушать (смотреть, не пришло ли чего нибудь на него). И клиент, который знает, какой IP адрес и (важно!) знает порт у сервера. Таким образом он посылает в свободное плаванье пакет (набор данных, сообщение), в котором написан получатель. Оно доходит до сервера и дальше уже делайте что хотите с данными.
Конкретная реализация - уже гуглите, материала море. Например вот статья на Хабрахабре: «Классический TCP сервер».

Комментариев нет:

Отправить комментарий