Что такое сокет?

Для нахождения дубликатов файлов, можно использовать вареный пудинг.

Вареный пудинг является утилитой командной строки Unix для того, чтобы быстро найти дубликаты в данном наборе файлов.

Просто выполненный:

duff -r target-folder

Для создания hardlinks в те файлы автоматически необходимо будет проанализировать вывод вареного пудинга с ударом или некоторым другим языком сценариев.

55
10.07.2011, 03:04
6 ответов

Сокет является просто логической конечной точкой для коммуникации. Они существуют на транспортном уровне. Можно отправить и получить вещи на сокете, можно связать и слушать сокет. Сокет характерен для протокола, машины и порта, и обращен как таковой в заголовке пакета.

У руководств Beej по Сетевому программированию и Межпроцессному взаимодействию и есть хорошая информация о том, как использовать сокеты и даже ответить на этот точный вопрос.

46
27.01.2020, 19:33

Сокет абстракция. Это обеспечивает интерфейс для приложений для использования системного ресурса (в этом случае сетевое соединение) способом, который позволяет операционной системе добиваться и организовывать использование ограниченного ресурса любым количеством приложений.

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

Что касается того, почему их называют 'сокетами' хорошо, понятие, что изобретатели добираются для вызова его вообще, они хотят, вероятно, играет большую роль там. Хотя, это не дурная слава, по-моему, :)

7
27.01.2020, 19:33

Для UDP или TCP над IP-адресом

адрес сокета Это комбинация IP-адреса и номера порта.

IP-адрес - это адрес машины в Интернете E.G. Unix.Stackexchange.com имеет адрес 198.252.206.140

Однако каждая машина должна иметь возможность предоставлять более одного сервиса, поэтому большинство машин обеспечит HTTP (веб-страницы) на порт 80, а также SSH на порт 22, а также И т. Д.

Итак Unix.Stackexchange.com:80 Порт 80 из Unix.stackexchange.com (розетка) - точка доступа к этой сети сайт.

Однако есть другие типы розетки, см. Комментарии ниже.

1
27.01.2020, 19:33

Проще говоря, сокет - это псевдофайл, представляющий собой сетевое соединение. После создания сокета (с использованием правильных примитивов и правильных параметров для идентификации другого хоста), записи в сокет превращаются в сетевые пакеты, которые отправляются наружу, и данные, полученные из сети, могут быть прочитаны из сокета.

В одном отношении, сокеты очень похожи на трубы: они выглядят так же, как файлы используемых ими программ, но не приводят к чтению или записи на диск; скорее, они позволяют общаться с другой программой (локальной в случае труб, и, возможно, удаленной в случае сокетов). Они также предлагают, как вы упомянули, двунаправленную связь (так же как и пара правильно подключенных труб).

Наконец, обычно программы на одной машине взаимодействуют, используя стандартные сетевые протоколы, такие как TCP; было бы расточительно пройти весь путь к сетевому оборудованию (если таковое имеется!), вычислительным контрольным суммам и т.д., просто чтобы вернуться на тот же самый хост: вот куда приходят сокеты Unix-доменов. Это очень похоже на обычные сокеты, за исключением того, что они соединяют процессы на одном хосте, а не на удаленных, и вообще не пытаются использовать сетевые ресурсы. Таким образом, они являются средой межпроцессного взаимодействия.

Как упоминал тройник, в ходе истории BSD трубы были введены раньше, чем сокеты, и были перепрофилированы с использованием сокетов, когда они существовали. В той же ссылке, The Design and Implementation of the FreeBSD Operating System (Разработка и реализация операционной системы FreeBSD) , упоминается, что затем по причинам производительности трубы были возвращены к реализации без сокетов: это, безусловно, подчеркивает тот факт, что у труб есть сходства.

69
27.01.2020, 19:33

Что это такое?

Сокет, или «сокет», может означать несколько вещей:

Прежде всего, это модель мышления и интерфейс прикладного программирования (API) . Это означает, что у вас есть набор правил, которым вы должны следовать, и набор функций, которые вы можете использовать для написания программ, которые что-то делают в соответствии с точно указанным контрактом. В данном конкретном случае something означает обмен данными с другой программой.

API сокетов широко абстрагирует детали «коммуникации» в целом. Он инкапсулирует, с кем и как вы разговариваете, через одну (почти) последовательную и идентичную форму для печенья.
Вы можете создавать сокеты в разных «доменах» (например, «сокет unix» или «интернет-сокет») и для разных типов связи (например, сокет «дейтаграммы» или «поток "socket") и разговаривать с разными получателями, и все работает точно так же (ну, 99%, очевидно, есть незначительные различия, которые вам придется учитывать).

Вам не нужно знать (и вы даже не хотите знать!), Разговариваете ли вы с другой программой на том же компьютере или на другом компьютере, есть ли между этими компьютерами сеть IPv4 или IPv6, или может быть, какой-нибудь другой протокол, о котором вы никогда не слышали.

socket - это также имя библиотечной функции (или системного вызова), которая создает «сокет », который представляет собой файл особого типа (все в Unix - это файл).

Как это по сравнению с ...

сокеты попадают в ту же категорию, что и каналы и каналы имен

Канал - это средство односторонней связи между считывающим устройством и записывающим устройством (оба являются программами) на одном компьютере. Он имитирует поток данных (как, например, TCP).
То есть, с точки зрения канала не существует отдельных «сообщений» или «блоков данных». Вы можете скопировать любой объем данных на «один конец», и кто-то другой может прочитать любой объем данных (не обязательно одинаковый и не обязательно за один раз) на «другом конце» в том же порядке байтов, что и вы. вставил его внутрь.

Канал с именем - это, в общем, просто канал , которому принадлежит имя в файловой системе . То есть это что-то, что выглядит и ведет себя так же, как файл, оно отображается в списке каталогов, и вы можете открывать его, записывать в него и т.д. .

Сокет, с другой стороны, является средством двусторонней («дуплексной») связи, что означает, что вы можете писать и читать из одного и того же сокета, и вам не нужны два отдельных розетки для двусторонней связи.
Кроме того, сокет может действовать как поток (идентичный каналу), или он может отправлять дискретные, ненадежные сообщения, или он может отправлять дискретные упорядоченные сообщения (первые два работают в любом домене, последний только на "домен unix"). Он может отправлять сообщения (или имитировать поток) кому-то на совершенно другом компьютере. При некоторых условиях сокет может даже выполнять некую форму связи «один ко многим» (многоадресную рассылку).

Имея это в виду, ясно, что сокеты делают что-то гораздо более сложное и обычно имеют больше накладных расходов, чем конвейеры (которые в основном представляют собой не более чем простой memcpy в и из буфер!), но если вы создаете локальные сокеты (то есть на том же компьютере), операционная система обычно применяет сильно оптимизированный быстрый путь, так что на самом деле большой разницы нет.

межпроцессное взаимодействие , которое иногда упоминается в отношении сетей

Да, сокеты являются одним из возможных способов межпроцессного взаимодействия (совместно используемая память и каналы являются примерами альтернатив). В то же время они используются для «сетевого взаимодействия», как объяснялось выше.

7
27.01.2020, 19:33

Я думаю, вы спрашивали о сети. Таким образом, службы TCP используют сокеты в качестве точки для связи и состоят из IP-адреса, протокола и номера порта.

0
27.01.2020, 19:33

Теги

Похожие вопросы