| |
cket(String host, int port);
public Socket(InetAddress address, int port);
Первый из этих конструкторов позволяет указывать адрес серверного узла в
виде текстовой строки, второй - в виде ссылки на объект класса InetAddress.
Вторым параметром задается номер порта, с использованием которого будут
передаваться данные.
В классе Socket определена еще одна пара конструкторов, которая, однако не
рекомендуется для использования:
public Socket(String host, int port, boolean stream);
public Socket(InetAddress address, int port,
boolean stream);
В этих конструкторах последний параметр определяет тип сокета. Если этот
параметр равен true, создается потоковый сокет, а если false - датаграммный.
Заметим, однако, что для работы с датаграммными сокетами следует использовать
класс DatagramSocket.
Методы класса Socket
Перечислим наиболее интересные, на наш взгляд, методы класса Socket.
Прежде всего, это методы getInputStream и getOutputStream, предназначенные
для создания входного и выходного потока, соответственно:
public InputStream getInputStream();
public OutputStream getOutputStream();
Эти потоки связаны с сокетом и должны быть использованы для передачи данных
по каналу связи.
Методы getInetAddress и getPort позволяют определить адрес IP и номер порта,
связанные с данным сокетом (для удаленного узла):
public InetAddress getInetAddress();
public int getPort();
Метод getLocalPort возвращает для данного сокета номер локального порта:
public int getLocalPort();
После того как работа с сокетом завершена, его необходимо закрыть методом
close:
public void close();
И, наконец, метод toString возвращает текстовую строку, представляющую
сокет:
public String toString();
Приложения SocketServ и SocketClient
В качестве примера мы приведем исходные тексты двух приложений Java,
работающих с потоковыми сокетами. Одно из этих приложений называется SocketServ
и выполняет роль сервера, второе называется SocketClient и служит клиентом.
Приложение SocketServ выводит на консоль строку “Socket Server Application”
и затем переходит в состояние ожидания соединения с клиентским приложением
SocketClient.
Приложение SocketClient устанавливает соединение с сервером SocketServ,
используя потоковый сокет с номером 9999 (этот номер выбран нами произвольно).
Далее клиент
|
|