Как сокеты используются для соединений/потоковой передачи между приложениями НЕ по сети?

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

Я всегда думал и даже читал в статьях, которые призваны дать «общее представление», что сокеты используются для создания соединений через сети.

Однако недавно я увидел, что сокеты также используются для локальной потоковой передачи/соединений между приложениями, которые не находятся в сети.

Мой вопрос;

  • Как сокеты используются для соединений/потоковой передачи НЕ по сети между приложениями?

person Phil    schedule 25.11.2013    source источник
comment
«localhost» в качестве адреса сервера.   -  person Martin James    schedule 25.11.2013


Ответы (2)


Если приложения находятся на одной машине, вы можете использовать локальный или петлевой адрес 127.0.0.1 в качестве IP-адреса сокета и любой port number > 1024 в обоих приложениях, и тогда они смогут обмениваться данными через это соединение.

person Alaa    schedule 25.11.2013
comment
Я понимаю! Существуют ли альтернативы сокетам для локальных приложений? Спасибо кстати! - person Phil; 26.11.2013
comment
Если вы имеете в виду под локальными приложениями приложения, работающие на одном компьютере, то да, есть и другие способы сделать это. Это называется межпроцессное взаимодействие, например: передача сообщений, разделяемая память, Pipes в linux. - person Alaa; 27.11.2013

Кроме того, если вы хотите использовать подход сокета и в Linux, AF_UNIX лучше, чем сокет inet, поскольку они позволяют избежать некоторого уровня конкретных задач inet, таких как маршрутизация/добавление-удаление ip-заголовков и транспортных заголовков и т. д.

person CodeQ    schedule 06.01.2014