Я не могу точно сказать, насколько многое из этого вы понимаете сейчас, поэтому позвольте мне быть немного педантичным.
Ясно, что вы понимаете концепцию клиента и сервера, поэтому меня удивляет, что вы пишете: «Столбец« Local Address
обозначает сторону клиента TCP-соединения, а столбец« Foreign Address
обозначает сторону сервера».
Это неверно; столбец « Local Address
обозначает локальную сторону TCP-соединения, а столбец « Foreign Address
обозначает внешнюю (или удаленную) сторону.
Другими словами, столбец « Local Address
обозначает сокет (TCP), который использует процесс на вашем компьютере (т. Е. Сокет, которым владеет ваш компьютер), а столбец « Foreign Address
обозначает сокет, к которому подключен локальный сокет.
Как вы, похоже, понимаете, процессы на вашем компьютере могут функционировать как серверы, поэтому локальные сокеты могут быть серверными сокетами, и тогда соответствующий клиентский сокет будет указан как «чужой».
Все начинает сбиваться с толку, когда процесс клиента на вашем компьютере подключается к процессу сервера на вашем компьютере.
Теперь это одно соединение представляет два локальных сокета - и netstat
сообщает по одной строке для каждого; один показывает клиента как локального, а сервер как иностранного (даже если это действительно локальный сокет), а другой - наоборот.
Ваша ситуация немного более запутана.
Ваш сервер Jetty (процесс 5808), конечно, создает сокеты и принимает на них соединения - это то, что делают серверы.
Но это создает много сокетов одновременно.
(По необходимости они находятся на разных номерах портов; ОС не позволяет сосуществовать нескольким сокетам с одинаковым протоколом и номером порта.)
И кажется, что он использует случайные (назначенные ОС) номера портов.
Например, как вы указали, он прослушивает порт 55484.
Я не знаком с причалом, поэтому я не знаю, нормально ли это.
Если вы внимательно изучите вывод netstat
, вы увидите, что локальный процесс 184, использующий сокет на порте 8081, имеет соединение с процессом 5808 / порт 55482.
Часть, которую я нахожу действительно странной, состоит в том, что процесс 5808 подключился к себе через несколько таких сокетов.
Таким образом, у вас есть несколько TCP-соединений, в которых оба сокета находятся не только на одном хосте, но и в одном и том же процессе.
Я не думаю, что мы можем точно сказать, какой конец является клиентом, а какой - сервером.
Я бы предположил, что более низкий номер порта, скорее всего, будет сервером, но это всего лишь предположение.