Главная > Программирование > Программирования сетевых взаимодействий в Java
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

1.4. Клиентские сокеты TCP/IP

Сокеты TCP/IP применяются для реализации надежных двунаправленных, постоянных соединений между точками - хостами в Интернет на основе потоков. Сокет может использоваться для подключения системы ввода-вывода Java к другим программам, которые могут находиться как на локальной машине, так и на любой другой машине в Интернет.

В Java существуют два вида сокетов TCP. Один - для серверов, другой - для клиентов. Класс ServerSocket предназначен быть «слушателем», который ожидает подключения клиентов. ServerSocket предназначен для серверов. Класс Socket предназначен для клиентов. Он предназначен, чтобы соединяться с серверными сокетами и инициировать обмен по протоколу. Рассмотрим два типа конструкторов, используемые для создания клиентских сокетов.

Socket(String hostName, int port) throws UnknownHostException, IOException.

Создает сокет, подключенный к именованному хосту и порту.

Socket(InetAddress ipAddress, int port) throws IOException.

Создает сокет, используя ранее существующий объект InetAddress и порт.

Основные методы класса Socket

InetAddress getInetAddress(). Возвращает InetAddress, ассоциированный с объектом Socket. В случае если сокет не подключен, возвращает null.

int getPort(). Возвращает удаленный порт, к которому подключен вызывающий объект socket. Если сокет не подключен, возвращает 0.

int getLocalPort(). Возвращает локальный порт, к которому привязан вызывающий объект Socket. Если сокет не привязан, возвращает -1.

InputStream getInputStream() throws IOException. Возвращает входной поток InputStream, ассоциированный с вызывающим сокетом.

OutputStream getOutputStream() throws IOException. Возвращает выходной поток OutputStream, ассоциированный с вызывающим сокетом.

Доступно также еще несколько других методов, включая connect(), позволяющий специфицировать новое подключение, isConnected(), возвращающий true, если сокет подключен к серверу, isBound(), возвращающий true, если сокет привязан к адресу, и isClosed(), возвращающий true, когда сокет закрыт.

<< Предыдущий параграф Следующий параграф >>