Я могу искать, и я уже просмотрел статью в Википедии и в некоторых других местах, но, хотя у меня есть некоторый опыт программирования, я не совсем понимаю эту концепцию. Можете ли вы относиться ко мне, как к 10-летнему ребенку, и дать мне четкое объяснение в отношении сокетов
Ответы:
Позвольте привести пример: скажем, вы хотите общаться / общаться в чате со своим другом, который живет не по вашему адресу. Чтобы это произошло, вы должны установить «канал связи». Скажем, вы хотите сделать это общение с помощью телефонов. Вы знаете, что в городе есть сеть телефонных линий, которая распространяется на каждый дом.
Теперь в вашем доме есть телефонная розетка, а в доме ваших друзей - одна. Для установления связи вам и вашему другу необходимо подключиться к сети, подключив телефон к розетке на обоих концах связи. Розетки в программировании такие же, концептуально, как телефонные розетки.
В программировании у вас есть два процесса (запуска программ), которые хотят общаться друг с другом. Для этого им необходимо установить связь между собой. Опять же, есть доступная сеть, им просто нужно подключиться к этой сети, используя своего рода сокеты. Unix-сокеты - это один из таких сокетов, который обеспечивает эту возможность подключения / подключения к сети. Итак, в каждой из двух программ у вас будет какой-то фрагмент кода, который выполняет работу по подключению к сети через сокеты.
Остальные детали.
источник
Unix-сокеты являются двунаправленными сокетами - точно так же, как сокеты на основе IP, с которыми вы, вероятно, знакомы, и отчасти похожи на каналы, с которыми вы, вероятно, знакомы.
У них есть небольшой набор интересных свойств:
По сути, они эквивалентны любому другому сокету - они имеют немного более интересные свойства, чем трубы, но в остальном радикально не отличаются. Они обычно имеют более высокую задержку IPC, чем конвейер, и часто более крупные буферы - хотя вы можете настроить это, и это зависит от платформы.
Последнее интересное свойство, которое следует помнить, заключается в том, что они используют файловую систему в качестве своего пространства имен - поэтому они похожи на именованный канал, а не на анонимный канал, в том программном обеспечении, которое ранее не могло взаимодействовать. (Абстрактные сокеты пространства имен совпадают, но путь к «файлу» не должен существовать.)
Нет ничего более глубокого, чем это - у них нет сверхсекретного скрытого свойства, которое радикально отличает их от обычного канала или TCP-соединения с localhost.
источник
Программирование сокетов Linux, часть 1: Использование TCP / IP для меня довольно хорошо. Он начинается с введения в IP-сети и сетевые уровни, а затем показывает, как реализовать простой эхо-сервер и клиент на C и Python.
источник