В чем разница между портом и сокетом?

Существует способ, чтобы "" deaccent "сравниваемая строка" без использования функции замещения, в которой перечислены все акценты, которые вы хотите удалить ...

самое простое решение Я могу думать об удалении акцентов (и других диакритических знаков) из строки.

См. в действии:

var string = "Ça été Mičić. ÀÉÏÓÛ";
console.log(string);

var string_norm = string.normalize('NFD').replace(/[\u0300-\u036f]/g, "");
console.log(string_norm);

Надеюсь, что это поможет.

836
задан John Woo 28 March 2012 в 03:50
поделиться

14 ответов

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

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

2
ответ дан Sander 28 March 2012 в 03:50
поделиться

Сокет является в основном конечной точкой для сетевой связи, состоя, по крайней мере, из IP-адреса и порта. В Java/C# сокет является высокоуровневой реализацией одной стороны двухстороннего соединения.

кроме того, определение в документация Java .

1
ответ дан Erik van Brakel 28 March 2012 в 03:50
поделиться

Порт:

порт А может отослать к точке физического соединения для периферийных устройств такой как последовательный, параллельный, и USB-порты. Термин порт также относится к определенным точкам соединения Ethernet, s UCH как те на концентраторе, переключателе или маршрутизаторе.

Сокет:

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

1
ответ дан balaweblog 28 March 2012 в 03:50
поделиться

Порт обозначает коммуникационную конечную точку в TCP и транспортах UDP для сетевого протокола IP. Сокет является абстракцией программного обеспечения для коммуникационной конечной точки, наиболее часто используемой в реализациях этих протоколов (API сокета). Альтернативная реализация является API XTI/TLI.

См. также:

Stevens, W. R. 1998, Сетевое программирование UNIX: Сетевые API: Сокеты и XTI; Объем 1, Prentice Hall.
Stevens, W. R., 1994, Проиллюстрированный TCP/IP, Объем 1: Протоколы, Addison-Wesley.

0
ответ дан VoidPointer 28 March 2012 в 03:50
поделиться

Относительная терминология TCP/IP, которая является тем, что я принимаю, подразумевается вопросом. В терминах неспециалиста:

ПОРТ А похож на номер телефона конкретного дома в конкретном почтовом индексе. Почтовый индекс города мог считаться IP-адресом города и всех зданий в том городе.

СОКЕТ А, с другой стороны, больше похож на установленный телефонный вызов между телефонами пары зданий, говорящих друг с другом. Те вызовы могут быть установлены между зданиями в том же городе или двумя зданиями в различных городах. Именно той временной установленной трассой между парой телефонов, говорящих друг с другом, является СОКЕТ.

3
ответ дан Tall Jeff 28 March 2012 в 03:50
поделиться

Сокет = IP-адрес + порт (числовой адрес)
Вместе они определяют конечную точку для сетевого соединения на машине. (Я просто заваливал сеть 101?)

28
ответ дан Gishu 28 March 2012 в 03:50
поделиться

Кажется, существует много ответов, приравнивающих сокет с соединением между 2 пк.. то, которое я думаю, абсолютно неправильно. Сокет всегда был конечная точка на 1 пк, который может или не может быть соединен - конечно, мы все использовали слушателя или сокеты UDP* в какой-то момент. Важная часть - то, что это адресуемо и активно. Отправка сообщения к 1.1.1.1:1234 вряд ли будет работать, поскольку нет никакого сокета, определенного для той конечной точки.

Сокеты являются конкретным протоколом - так реализация уникальности, что и TCP / IP и UDP / использование IP* (ipaddress:port), отличается, чем, например, IPX (Сеть, Узел, и... гм, сокет - но различный сокет, чем предназначен общим термином "сокета". Числа сокета IPX эквивалентны портам IP). Но, они все предлагают уникальную адресуемую конечную точку.

, Так как IP стал основным протоколом, порт (в сетях условий) стал synonomous или с UDP или с номером порта TCP - который является частью адреса сокета.

  • UDP без установления соединения - значение, что никакой виртуальный канал между этими 2 конечными точками никогда не создается. Однако мы все еще обращаемся к сокеты UDP как конечная точка. API-функции проясняют, что оба - просто другой тип сокетов - SOCK_DGRAM, UDP (просто отправляющий сообщение), и SOCK_STREAM TCP (создающий виртуальный канал).

  • Технически, заголовок IP содержит IP-адрес, и протокол сверху IP (UDP или TCP) содержит номер порта. Это позволяет иметь другие протоколы (например, ICMP, которые не имеют никаких номеров портов, но действительно имеют информацию о IP-адресации).

24
ответ дан Mark Brackett 28 March 2012 в 03:50
поделиться

сокет А представляет единственное соединение между двумя сетевыми приложениями. Эти два приложения номинально работают на различных компьютерах, но сокеты могут также использоваться для межпроцессного взаимодействия на одиночном компьютере. Приложения могут создать несколько сокетов для связи друг с другом. Сокеты двунаправлены, означая, что любая сторона соединения способна и к передающим и к получающим данным. Поэтому сокет может быть создан теоретически на любом уровне модели OSI от 2 вверх. Программисты часто используют сокеты в сетевом программировании, хотя косвенно. Программирование библиотек как Winsock скрывает многие детали низкого уровня программирования сокета. Сокеты были в широком употреблении с начала 1980-х.

порт А представляет конечную точку или "канал" для сетевой связи. Номера портов позволяют различным приложениям на том же компьютере использовать сетевые ресурсы, не вмешиваясь друг в друга. Номера портов обычно появляются в сетевом программировании, особенно снабжают программирование сокетом. Иногда, тем не менее, номера портов сделаны видимыми обычному пользователю. Например, некоторые веб-сайты, которые человек посещает в Интернете, используют URL как следующее:

http://www.mairie-metz.fr:8080/ В этом примере, номер 8080 относится к номеру порта, используемому веб-браузером для подключения сервера к Интернету. Обычно, веб-сайт использует номер порта 80, и это число не должно быть включено с URL (хотя это может быть).

В сетях IP, номера портов могут теоретически колебаться от 0 до 65 535. Большинство популярных сетевых приложений, тем не менее, использует номера портов на нижнем уровне диапазона (такой как 80 для HTTP).

Примечание: термин порт также относится к нескольким другим аспектам сетевой технологии. Порт может отослать к точке физического соединения для периферийных устройств такой как последовательный, параллельный, и USB-порты. Термин порт также относится к определенным точкам соединения Ethernet, таким как те на концентраторе, переключателе или маршрутизаторе.

касательно http://compnetworking.about.com/od/basicnetworkingconcepts/l/bldef_port.htm

касательно http://compnetworking.about.com/od/itinformationtechnology/l/bldef_socket.htm

92
ответ дан Gucho Ca 28 March 2012 в 03:50
поделиться

Они - условия от двух различных доменов: 'порт' является понятием от сетей TCP/IP, 'сокет' является API (программирование) вещь. 'Сокет' сделан (в коде) путем взятия порта и имени узла или сетевого адаптера и объединения их в структуру данных, которую можно использовать, чтобы отправить или получить данные.

16
ответ дан Roel 28 March 2012 в 03:50
поделиться

Сокет является структурой в Вашем программном обеспечении. Это - более или менее файл; это начинает операции, любят чтение и запись. Это не физическая вещь; это - путь к Вашему программному обеспечению для обращения к физическим вещам.

порт А является подобной устройству вещью. Каждый хост имеет одну или несколько сетей (те являются физическими); хост имеет адрес в каждой сети. Каждый адрес может иметь тысячи портов.

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

Смотрят на Терминология TCP/IP .

5
ответ дан S.Lott 28 March 2012 в 03:50
поделиться

Сводка

сокет TCP является экземпляром конечной точки определенный IP-адресом и портом в контексте или конкретного соединения TCP или состояния слушания.

порт А является идентификатором виртуализации определение сервисной конечной точки (в отличие от сервиса экземпляр конечная точка иначе идентификатор сессии).

сокет TCP А не соединение , это - конечная точка определенного соединения.

могут быть параллельные соединения к сервисной конечной точке , потому что соединение определяется [1 114] и его локальное и удаленное конечные точки, позволяя трафику быть направленным к определенному сервисному экземпляру.

может только быть один сокет слушателя для данного адреса/комбинации портов .

Выставка

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

В самом широком смысле, порт является точкой входа или выхода. Хотя не используемый в сетевом контексте, французский Word Оттоманская Порта буквально средства дверь или шлюз , далее подчеркивая то, что порты являются конечными точками транспортировки, поставляете ли Вы данные или большие стальные контейнеры.

В целях этого обсуждения я ограничу соображение контекстом сетей TCP-IP. Модель OSI очень хороша, но полностью никогда не реализовывалась, а тем более широко развертывалась в условиях высокого напряжения интенсивного трафика.

комбинацию IP-адреса и порта строго известны как конечная точка и иногда называют сокетом. Это использование происходит с RFC793, исходной спецификацией TCP.

соединение TCP А определяется двумя конечными точками иначе сокеты .

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

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

Это - пара сокета (с 4 кортежами, состоящий из клиентского IP-адреса, числа клиентского порта, IP-адреса сервера и номера порта сервера), который определяет две конечных точки, который однозначно определяет каждое соединение TCP в Интернете. ( IP TCP Проиллюстрированный Объем 1 , W. Richard Stevens)

На большинстве языков C-derived, соединения TCP устанавливаются и управляли методами использования на экземпляре класса Сокета. Хотя распространено воздействовать на более высокий уровень абстракции, обычно экземпляр класса NetworkStream, это обычно представляет ссылку на объект сокета. Кодеру этот объект сокета, кажется, представляет соединение, потому что соединение создается и управляло методами использования объекта сокета.

В C#, для установления соединения TCP (существующему слушателю) сначала Вы создаете TcpClient. Если Вы не определяете конечную точку к конструктор TcpClient , она использует значения по умолчанию - так или иначе, локальная конечная точка определяется. Тогда Вы вызываете Подключение метод на экземпляре, который Вы создали. Этот метод требует параметра, описывающего другую конечную точку.

Все это немного сбивает с толку и приводит Вас полагать, что сокет является соединением, которое является яйцами. Я трудился под этим недоразумением, пока Richard Dorman не задал вопрос.

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

Ясность была бы улучшена в других отношениях, также. Сокет не определен комбинацией IP-адреса и порта:

[...] TCP демультиплексирует входящие сегменты с помощью всех четырех значений, которые включают локальные и внешние адреса: целевой IP-адрес, номер целевого порта, исходный IP-адрес и номер исходного порта. TCP не может определить, какой процесс получает входящий сегмент путем рассмотрения целевого порта только. Кроме того, единственная из [различных] конечных точек в [данный номер порта], который получит запросы входящего соединения, является той в слушать состоянии. (p255, IP TCP Проиллюстрированный Объем 1 , W. Richard Stevens)

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

Hagrawal не верит мне (см. комментарии), таким образом, вот реальный образец. Я подключил веб-браузер с http://dilbert.com и затем работал netstat -an -p tcp. Последние шесть строк вывода содержат два примера факта, которые обращаются, и порт недостаточно для однозначного определения сокета. Существует два отличных соединения между 192.168.1.3 (моя рабочая станция) и 54.252.94.236:80 (удаленный сервер HTTP)

  TCP    192.168.1.3:63240      54.252.94.236:80       SYN_SENT
  TCP    192.168.1.3:63241      54.252.94.236:80       SYN_SENT
  TCP    192.168.1.3:63242      207.38.110.62:80       SYN_SENT
  TCP    192.168.1.3:63243      207.38.110.62:80       SYN_SENT
  TCP    192.168.1.3:64161      65.54.225.168:443      ESTABLISHED

, Так как сокет является конечной точкой соединения, существует два сокета с адресом/комбинацией портов 207.38.110.62:80 и еще два с адресом/комбинацией портов 54.252.94.236:80.

я думаю, что недоразумение Hagrawal является результатом моего очень тщательного использования слова, "определяет". Я имею в виду "полностью, однозначно и однозначно определяет". В вышеупомянутом образце существует две конечных точки с адресом/комбинацией портов 54.252.94.236:80. Если все, что Вы имеете, является адресом и портом, у Вас нет достаточной информации для сообщения этих сокетов независимо. Это - недостаточно информации к [1 131], определяют сокет.

Абзац Приложения

два из раздела 2.7 из RFC793 говорят

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

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

Ссылки

  1. IP TCP Проиллюстрированный Объем 1 Протоколы , W. Richard Stevens, 1994 Addison Wesley

  2. RFC793, Институт Информатики, Университет Южной Калифорнии для DARPA

  3. RFC147, Определения Сокета, Joel M. Winett, Lincoln Laboratory

888
ответ дан 25 revs, 7 users 93% 28 March 2012 в 03:50
поделиться

Сокет является коммуникационной конечной точкой. Сокет непосредственно не связан с семейством протокола TCP/IP, он может использоваться с любым протоколом Ваши системные поддержки. API сокета C ожидает, что Вы сначала получите пустой объект сокета от системы, которую можно тогда или связать с локальным адресом сокета (чтобы непосредственно получить входящий трафик для протоколов без установления соединения или принять запросы входящего соединения на протоколы с установлением соединения) или что можно соединиться с удаленным адресом сокета (для любого вида протокола). Можно даже сделать обоих, если Вы хотите управлять обоими, локальный адрес сокета, сокет связывается с и удаленный адрес сокета, с которым подключен сокет. Для протоколов без установления соединения, подключающих сокет, является даже дополнительным, но если Вы не делаете этого, необходимо ли будет также передать адрес назначения с каждым пакетом, который Вы хотите отправить по сокету как, как еще сокет знал бы, куда отправить эти данные в? Преимущество состоит в том, что можно использовать единственный сокет для отправки пакетов в различные адреса сокета. Как только Вам настроили Ваш сокет и возможно даже соединенный, полагаете, что он канал двунаправленной связи. Можно использовать его, чтобы передать данные некоторому месту назначения, и некоторое место назначения может использовать его для пасования назад данных Вам. То, что Вы пишете в сокет, отсылают и что было получено, доступно для чтения.

Порты, с другой стороны - что-то, что только имеют определенные протоколы стека протоколов TCP/IP. TCP и пакеты UDP имеют порты. Порт является просто простым числом. Комбинация исходного порта и целевого порта определяет канал передачи между двумя хостами. Например, у Вас может быть сервер, который должен быть обоими, простым сервером HTTP и простым FTP-сервером. Если бы теперь пакет прибывает для адреса того сервера, как это знало бы, является ли это пакетом для HTTP или FTP-сервера? Ну, это будет знать поэтому, поскольку сервер HTTP будет работать на порте 80 и FTP-сервер на порте 21, поэтому если пакет прибудет с целевым портом 80, это для сервера HTTP а не для FTP-сервера. Также пакет имеет исходный порт, так как без такого исходного порта, сервер мог только иметь одно соединение с одним IP-адресом за один раз. Исходный порт позволяет серверу отличить в других отношениях идентичные соединения: у них всех есть тот же целевой порт, например, порт 80, тот же целевой IP, всегда тот же адрес сервера и тот же исходный IP, как они все прибывают от того же клиента, но как у них есть другой источник порты, сервер может отличить их друг от друга. И когда сервер передает ответы обратно, он сделает так к порту, запрос прибыл из, тот способ, которым клиент может также отличить различные ответы, которые он получает.

3
ответ дан Mecki 28 March 2012 в 03:50
поделиться

В широком смысле Сокет - просто что, сокет, точно так же, как Ваше электрическое, кабель или телефонный разъем. Точка, откуда "необходимый материал" (питание, сигнал, информация) может выйти и войти. Это скрывает много подробного материала, который не требуется для использования "необходимого материала". В языке программного обеспечения это обеспечивает универсальный способ определить механизм коммуникации между двумя объектами (те объекты могли быть чем-либо - два приложения, два физически отдельных устройства, Пользователь & пространство Ядра в ОС, и т.д.)

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

2
ответ дан Harty 28 March 2012 в 03:50
поделиться

A Соединительный сокет (FD) представлен для локального адреса + локальный порт + одноранговый адрес + одноранговый порт. Процесс RECV / Отправка данных через сокет Аннотация. Разъем прослушивания (FD) представлен для локального адреса + локальный порт прослушивания. Процесс может принять новое соединение через сокет.

-1
ответ дан 22 November 2019 в 21:06
поделиться
Другие вопросы по тегам:

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