Цитируя this socket tutorial:Пассивные и активные розетки
Розетки бывают двух основных вкусов. активного сокет подключен к удаленному активному сокету через открытые данные соединения ... Пассивный сокет не подключен, а ожидает в входящее соединение, которое будет порождать новый активный сокет раза в соединения создано ...
Каждый порт может иметь один пассивный сокет переплетен к нему, ожидая входящих соединения и нескольких активных сокетов, каждый , соответствующих открытым соединения на порт с. Это как если бы фабричный рабочий ждет новых сообщений, чтобы прибыть (он представляет пассивный сокет), и когда один приходит сообщение от нового отправителя, он инициирует переписку (а соединения) с ними делегированием кто-то еще (активный сокет), чтобы действительно прочитать пакет и ответить обратно отправителю, если необходимо. Это позволяет производителю фабрики бесплатно получать новые пакеты . ...
Затем учебник объясняет, что, после того, как соединение установлено, активный сокет продолжает прием данных до тех пор не осталось байт, а затем закрывает соединение.
Что я не понимаю, так это: Предположим, что есть входящее соединение с портом, и отправитель хочет отправить немного данных каждые 20 минут. Если активный сокет закрывает соединение, когда нет оставшихся байтов, отправитель должен повторно подключаться к порту каждый раз, когда он хочет отправить данные? Как мы сохраняем установленное соединение в течение более длительного времени? Можете ли вы рассказать мне, что мне здесь не хватает?
Мой второй вопрос: кто определяет предел одновременно работающих активных сокетов?
Вы перефразируете эту статью и берете кусочки из разных частей статьи. Контексты разные. В последнем разделе автор объясняет свою программу. Сокеты не действуют по умолчанию, на самом деле, если вы забудете закрыть свой сокет, что-то может и произойдет. Сокет не закрывается автоматически при получении последнего байта. – SRM
ОК, я думал, что это соглашение, и просто спросил, чего я здесь не хватает. Я новичок в концепциях, поэтому я хочу расспросить все, что мне трудно понять. – aslisabanci
Нет проблем, я просто хотел убедиться, что вы понимаете, что вы должны явно закрыть сокет. Это может сэкономить вам несколько головных болей по линии, когда вы почесываете голову, пытаясь понять, почему сокет не закрылся :). – SRM