Какая разница между открытой розеткой и розеткой, которая подключена?

Ява Socket класс имеет два метода isClosed а также isConnected проверить, закрыта ли розетка или подключена соответственно. Я хотел знать, в чем разница между открытым сокетом TCP и открытым и подключенным сокетом TCP, и чем он отличается от UDP.

2 ответа

Решение

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

Так что Socket Можно..

  • быть открытым и подключенным одновременно.
  • быть открытым и не подключенным одновременно.
  • не быть подключенным, когда закрыт.

ОБНОВИТЬ

от @Bryan

По-видимому, для сокетов TCP существуют полузакрытые или полуоткрытые состояния; какое использование (сегодня) отличается от его первоначального значения. Подробнее по этой ссылке.

На этой странице представлен довольно хороший обзор состояний сокетов: http://diranieh.com/SOCKETS/SocketStates.htm и различий между сокетами TCP и UDP. В частности:

  • Состояние "открыто" (TCP и UDP): создан неназванный сокет. Безымянный сокет - это тот, который не связан с локальным адресом и портом
  • Состояние "Подключен" (только TCP): между локальным и удаленным хостом установлена ​​связь (виртуальный канал). Отправка и получение данных теперь возможны.

Обратите внимание, что более новые реализации java.net.DatagramSocket поддерживают расширение для состояний сети TCP/IP: DatagramSocket также может находиться в состоянии "подключен", так что isConnected() не обязательно возвращает false, даже если сокет датаграммы никогда не бывает "подключен" на сетевом уровне. В частности: "Когда DatagramSocket подключен к удаленному адресу, пакеты могут отправляться или приниматься только с этого адреса. По умолчанию сокет дейтаграммы не подключен".

Для получения дополнительной информации см. Источники и JavaDoc.

Другие вопросы по тегам