Где сокет хранит данные? - PullRequest
0 голосов
/ 08 января 2020

У нас есть соединение через сокет TCP от моего компьютера до удаленного адреса.

Пожалуйста, уточните мне следующие пункты:

  1. Когда соединение через сокет TCP выполнено, порт на клиенте открыт, а также порт на сервере открыт?

  2. Я хочу понять, где сокеты хранят данные, когда мы записываем что-то в сокет? У нас есть два одинаковых файла на сервере и клиенте? Или данные, хранящиеся в оперативной памяти?

  3. Если данные хранятся в файлах, могу ли я найти файлы в linux, особенно в Ubuntu 18.04?

1 Ответ

3 голосов
/ 08 января 2020
  1. Когда установлено сокет TCP-соединение, порт на клиенте открыт, а также порт на сервере открыт?

Да.

Я хочу понять, где сокеты хранят данные, когда мы записываем что-то в сокет? У нас есть два одинаковых файла на сервере и клиенте? Или данные, хранящиеся в оперативной памяти?

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

Если данные хранятся в файлах, могу ли я найти файлы в linux, особенно в Ubuntu 18.04?

Нет в файлах.

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